数据结构 | 每日一练(30)

数据结构

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下

——老子

1

每日一练

1.

以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。

void reverse(pointer h)

/* h 为附加头结点指针;类型 pointer 同算法设计第 3 题*/

{ pointer p,q;

p=h->next; h->next=NULL;

while((1)________)

{q=p; p=p->next; q->next=h->next; h->next=(2)________; }

}

2. 下面是用 c 语言编写的对不带头结点的单链表进行就地逆置的算法,该算法用 L 返回逆置后的链表的

头指针,试在空缺处填入适当的语句。

void reverse(linklist &L){

p=null;q=L;

while(q!=null)

{ (1) ; q->next=p;p=q;(2)___ ; }

(3)_____;

}

正确答案

1.

(1)p!=null //链表未到尾就一直作

(2)q //将当前结点作为头结点后的第一元素结点插入

2.

(1)L=L->next; //暂存后继

(2)q=L; //待逆置结点

(3)L=p; //头指针仍为L

如果您觉得本篇文章对您有作用,请转发给更多的人,点一下好看就是对小编的最大支持!

-end-

正文完