1 循环链表-线性表的另一种存储结构
特点:从表的任何一个位置出发,都可以找到其他节点
操作与单链表的差别;
判断表尾部的区别:p->next =H
2.双向链表
每一个结点有两个指针域,一个指向直接前驱,另一个指向直接后继。
3.双向循环链表
基本操作:在第i个结点前边插入一个新的元素e,在单链表中,在某一个结点之前要插入一个新的元素,后边的域没有指向前边。
双向链表:
status ListInsert_Dul(DuLinkList &L,int I,ElemType e)
{
//在带有头结点的双向链表中的第i个位置插入元素e
j=0;p=L;
while(j<i-1 && P){p=p->next;j++}
if(!p)return ERROR; //表的长度小于i
s =(DuLinkList)malloc(sizeof(ElemType));
if(!s) exit(OVERFLOW) //空间不够,溢出
s->data = e;s - >next = p->next; s->prior = p;
p->next->prior =s ;p->next =s;
return OK;
}
4 线性表的其他结构--多项式运算
一元多项式的形式
一元多项式的运算
抽象数据类型一元多项式的定义 ;
ADT=(D,R,T) Data,R,P基本操作
例:多项式的链表建立