数据结构cc循环链表.pptxVIP

  • 1
  • 0
  • 约3.16千字
  • 约 23页
  • 2022-11-02 发布于上海
  • 举报
数据结构CC循环链表会计学654top3D2C1B0Adata第1页/共23页3.2 链表应用堆栈的最简单的表示方法是采用一维数组,为形象起见,一般在图中将堆栈画成竖直的 。设数组名为data,其下标的下界为0,上界为n。一般需用一个变量top记录当前栈顶的下标值,top也叫做栈指针。在C语言中通常用以下方式定义一个顺序栈结构体:#define N 30Typedef struct stack{datatype data[ N ]; Int top;}sqstack;本例中top=4 第2页/共23页二、堆栈的运算#define N 30Typedef struct stack{datatype data[ N ]; Int top;}sqstack;void push ( sqstack *p, datatype x){ if (p-top==N-1) printf(“栈溢出!\n”); /*显示栈满信息*/ else { (p-top)++; p-data[p-top]=x; }} 入栈(push) 入栈的主要操作是先将栈顶指针加1;然后将入栈元素放到栈顶指针所指示下值的位置上。设用指针P表示堆栈,入栈的元素值为x,则可得到入栈函数如下:#define N 30Typedef struct stack{datatype data[ N ]; Int top;}sqstack;void pop (sqstack *p){ if (p-top== -1) printf(“空栈!\n”); /*栈为空显示相应的信息*/ else { x=p-data[p-top]; ( p- top)--; /*栈顶位置下移*/ }return x;} 第3页/共23页2. 出栈(Pop)出栈运算时,先将栈顶的元素值赋给某个变量,以备后面的运算应用;然后栈顶指针减1,将栈顶位置下移。假设已指定的变量为x,则出栈的函数如下: 第4页/共23页链堆栈链堆栈是栈的链接存储表示,它是只允许在表头进行插入和删除运算的单链表。它与普通的单链表没有什么不同,只是将头指针head改称为栈顶指针top。 第5页/共23页链堆栈的入栈算法 在栈顶指针是top的链堆栈中插入一个值为x的结点的算法:void push (linklist top, datatype x){ linklist s; s=new node ; /*建立一个结点指针*/ s-data=x; s-next=top; top=s;} 第6页/共23页链堆栈的出栈算法int pop(linklist top){ int x; linklist p; if( top= = NULL) cout“栈为空!” ; else {x=top-data; p=top; top=top-next; delete p; return x; }} 第7页/共23页3.3 循环链表与双向链表一、循环链表循环链表(circular linked list)是一种首尾相接的链表,将单链表表尾结点原来的空指针改为指向表头结点,就成为循环链表。循环链表并不多占存储单元,但从循环链表的任一个结点出发都可以访问到此链表的每一个结点,因为当访问到表尾结点后又能返回到头结点。 第8页/共23页例3.2有两个循环单链表,头指针分为head1和head2,编写函数将链表head2链接到链表head1之后,链接后的链表仍保持是循环链表的形式。解:先分别找到两个链表的表尾,将head2放入链表head1的表尾,将两个链表链接起来,然后将head1放入原head2链表的表尾,构成新的循环链表。 第9页/共23页link(linklist head1,head2){ linklist p, q; p=head1; while(p-next!=head1) p=p-next; q=head2; while(q-next!=head2) q=q-next; p-next=head2; q-next=head1; } 例3.2算法第10页/共23页1. 带头指针的循环链表通常在循环链表的表头结点前面再加一个空结点,也叫空表头结点。表空时空表头结点的指针指向其本身,如下面的图所示为空循环链表。 空表头结点除指针以外的数据域是没有用的,但为了将此结点与一般结点相区别,常常是将其赋以一个特别的数据,以与一般结点相区别。 第11页/共23页2. 带尾指针的循环链表另一种方法是不设头指针而改设尾指针,这样无论是找头结点还是尾结点都很方便。因为尾结点由尾指针rear来指示,则头结点的位置是rear-next-next。 第12页/共23页二、双向链表 双向链表中每个结点除了有向后指针外,还有指向其前

文档评论(0)

1亿VIP精品文档

相关文档