生活随笔
收集整理的這篇文章主要介紹了
链表——逆置
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給定程序中,函數(shù)fun的功能是將帶頭結(jié)點(diǎn)的單向鏈表逆置,即若原鏈表中從頭至尾結(jié)點(diǎn)數(shù)據(jù)與依次為2、4、6、8、10,逆置后,從頭至尾結(jié)點(diǎn)數(shù)據(jù)依次為10、8、6、4、2。?
請在程序的下畫線處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。?
試題程序。
1 #define N 5
2 typedef
struct node
3 {
4 int data;
5 struct node *
next;
6 } NODE;
7 void fun(NODE *
h)
8 {
9 NODE *p, *q, *
r;
10
11 p = h->
1 ;
12 if (p ==
2 )
13 return;
14 q = p->
next;
15 p->next =
NULL;
16 while (q)
17 {
18 r = q->next; q->next =
p;
19 p = q; q =
3 );
20 }
21 h->next =
p;
22 }
23 NODE *creatlist(
int a[ ])
24 {
25 NODE *h, *p, *q;
int i;
26 h = (NODE *)malloc(
sizeof(NODE));
27 h->next =
NULL;
28 for (i =
0; i < N; i++
)
29 {
30 q = (NODE *)malloc(
sizeof(NODE));
31 q->data =
a[i];
32 p->next =
q;
33 p =
q;
34 }
35
36 }
37 return h;
38 }
39 void outlist(NODE *
h)
40 {
41 NODE *
p;
42 p = h->
next;
43 if (p ==
NULL)
44 printf(
"The list is NULL!\n");
45 else
46 {
47 printf(
"\nHead ");
48 do
49 {
50 printf(
"->%d", p->
data);
51 p = p->
next;
52 }
53 while (p !=
NULL);
54 printf(
"->End\n");
55
56 }
57
58 }
59 main( )
60 {
61 NODE *
head;
62 int a[N] = {
2,
4,
6,
8,
10};
63 head =
creatlist(a);
64 printf(
"\nThe original list:\n");
65 outlist(head);
66 fun(head);
67 printf(
"\nThe list after inverting :\n");
68 outlist(head);
69 }
?
答案:
你的答案?(正確)
1 ?next ?
2 ?NULL ?
3 ?r
轉(zhuǎn)載于:https://www.cnblogs.com/UniqueColor/p/5452941.html
總結(jié)
以上是生活随笔為你收集整理的链表——逆置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。