数据结构作及答案1.docVIP

  • 20
  • 0
  • 约4.2千字
  • 约 5页
  • 2016-12-02 发布于贵州
  • 举报
数据结构作及答案1

第二章 2.22 试写一算法,对单链表实现就地逆置,即利用原表的存储空间将线性表 (a1,a2,…,an)逆置为(an,an-1,…,a1) 提示:将原链表中的头结点和第一个元素结点断开(令其指针域为空),先构成一个空表,然后将原链表中各结点从第一个结点起依次插入这个新表的头部。 答:void LinkList_reverse(Linklist L)//链表的就地逆置;为简化算法,假设表长大于2 { ??p=L-next;q=p-next;s=q-next;p-next=NULL; ??while(s-next) ??{ ????q-next=p;p=q; ????q=s;s=s-next; //把L的元素逐个插入新表表头 ??} ??q-next=p;s-next=q;L-next=s; }//LinkList_reverse 分析:本算法的思想是,逐个地把L的当前元素q插入新的链表头部,p为新表表头. 第三章 3.1 设将整数1、2、3、4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下有问题: (1)若入栈次序为push(1),pop(),push(2),push(3),pop(),pop( ),push(4),pop( ),则出栈的数字序列为什么? (2) 能否得到出栈序列1423和1432?并说明为什么不能得到或者如何得到

文档评论(0)

1亿VIP精品文档

相关文档