数据结构题库,数据结构,数据结构题集,数据结构试题及答案,数据结构试题库,数据结构编程题库,数据结构与算法,5a0题库,裁决,龙战骑士
单链表设一个“哨兵”intlistt ,其值域volue为空,后继指针域next指向单链表的第一个结点。从“哨兵”出发,沿着各结点的next指针,可顺序访问单链表的每一个结点,输出升序的整数序列。初始时,我们通过下述命令构造一个空表:
然后依次读入正整数,按照递增顺序将这些整数插入单链表中。问题是,对于一个整数x来说,如何找到插入位置,如何将整数插入该位置:
首先,我们为整数x创设一个结点p:
并从“哨兵” intlist出发,顺着各结点的next指针寻找结点v。按照递增要求,如果p结点插入u结点后,则
设v=u^.next,u和v分别为p的前趋结点和后继结点。我们将u^.next指针调整为p,p的next指针指向v,便可将p结点插入单链表。
构造单链表的过程一直进行到输入负数为止。
删除序列中整数x的计算亦是从从“哨兵” intlist出发,顺着各结点的next指针寻找值域为x的结点。为了删除这个结点,必须找到它的前趋结点u,即u^.next^.volue=x。我们将u的next指针修正为指向后继结点的后继结点,即
便可将值域为x的结点从单链表中删去