正在加载图片...
将最后一个结点的空指针改为指向头结点,从任一结点出发均可找到其它结点 (3)双向链表P55 在每个结点中设置两个指针,一个指向后继,一个指向前驱。可直接确定一个结点的前驱和后继结点 可提高效率。一插入和删除 作业2:对以下单链表分别执行下列各程序段并画出结果示意图 L→D十[5十1 Rs↑ (1)LFP->link; (4)P->link->link->link->data=P->data hile(tl=NUll) T->data=( T=T->link while(T->linkI=NULL T->data=(T->data)2 T=T->link ()P=(JD*)malloc(sizeof(JD)); R->linker: P->link=s TL T->linkep->link. (9)S->link 习题:2。10逆转线性单链表 扫描单链表将第一个节点的next设置为NULL将第二个节点的next指向第一个节点,将第三个节点的 next指向第二个节点 Invert(head) Node *head i node*p, *.*r P=head; q=p->next; While(q=null) head->nextENULL: 33栈6 将最后一个结点的空指针改为指向头结点,从任一结点出发均可找到其它结点。 (3) 双向链表 P55 在每个结点中设置两个指针,一个指向后继,一个指向前驱。可直接确定一个结点的前驱和后继结点。 可提高效率。—插入和删除 作业 2: 对以下单链表分别执行下列各程序段,并画出结果示意图. (1) L=P->link; (2) R->data=P->data; (3) R->data=P->link->data; (4) P->link->link->link->data=P->data; (5) T=P; while(T!=NULL) { T->data=(T->data)*2; T=T->link; } (6) T=P; while(T->link!=NULL) { T->data=(T->data)*2; T=T->link; } (7) P=(JD*)malloc(sizeof(JD)); P->data=10; R->link=P; P->link=S; (8) T=L; T->link=P->link; free(P); (9) S->link=L; 习题:2。10 逆转线性单链表 扫描单链表,将第一个节点的 next 设置为 NULL,将第二个节点的 next 指向第一个节点, 将第三个节点的 next 指向第二个节点,… Invert(head) Node *head; { node *p,*q,*r; P=head; q=p—>next; While (q!=NULL) { r=q—>next; q—>next=p; p=q; q=r; } head—>next=NULL; head=p;} 3.3 栈 L S 2 5 7 3 8 ^ P R
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有