指向

若有以下定义:struct node { int data;  struct node *next; }struct node *p; 已建立如下图所示的链表:      ┌──┬──┐  ┌──┬──┐         ┌──┬──┐ p →│data│next┼→│data│next┼→... →│data│NULL│      └──┴──┘  └──┴──┘         └──┴──┘指针p指向第一个结点,能输出链表所有结点的数据成员data的循环语句是(   )。

若有以下定义:struct node { int data;  struct node *next; }struct node *p; 已建立如下图所示的链表:      ┌──┬──┐  ┌──┬──┐         ┌──┬──┐ p →│data│next┼→│data│next┼→... →│data│NULL│      └──┴──┘  └──┴──┘         └──┴──┘

若有以下定义:struct node { int data;  struct node *next; }struct node *head,*p; 已建立如下图所示的链表:     p                           ↓       ┌──┬──┐ ┌──┬──┐        ┌──┬──┐head→│data│next┼→│data│next┼→... →│data│NULL│      └──┴──┘ └──┴──┘        └──┴──┘能删除指针p所指向结点的程序段是(

若有以下定义:struct node { int data;  struct node *next; }struct node *head,*p; 已建立如下图所示的链表:     p                           ↓       ┌──┬──┐ ┌──┬──┐        ┌──┬──┐head→│data│next┼→│data│next┼→... →│data│NUL

若有以下定义:  struct node  { int data; struct node *next;  } *p,*q,*t; 指针p、t和q分别指向图中所示结点: p               t               q ↓              ↓              ↓┌──┬──┐ ┌──┬──┐ ┌──┬──┐│data│next┼→│data│next┼→│data│next┼→...└──┴──┘ └──┴──┘ └──┴──┘                    

若有以下定义:  struct node  { int data; struct node *next;  } *p,*q,*t; 指针p、t和q分别指向图中所示结点: p               t               q ↓              ↓              ↓┌──┬──┐ ┌──┬──┐ ┌──┬──┐│data│next┼→│data│next┼→│da

若有以下定义:struct node { int data;  struct node *next; }struct node *head,*p; 已建立如下图所示的链表:     p                           ↓       ┌──┬──┐ ┌──┬──┐        ┌──┬──┐head→│data│next┼→│data│next┼→... →│data│NULL│      └──┴──┘ └──┴──┘        └──┴──┘能删除指针p所指向结点的程序段是(

若有以下定义:struct node { int data;  struct node *next; }struct node *head,*p; 已建立如下图所示的链表:     p                           ↓       ┌──┬──┐ ┌──┬──┐        ┌──┬──┐head→│data│next┼→│data│next┼→... →│data│NUL

若有以下定义:struct node { int data;  struct node *next; }struct node m,n,k, *head, *p; 已建立如下图所示的链表:            m              n                      k       ┌──┬──┐  ┌──┬──┐        ┌──┬──┐ head→│data│next┼ →│data│NULL│   p→ │data│next│     └──┴──┘  └──┴──┘    

若有以下定义:struct node { int data;  struct node *next; }struct node m,n,k, *head, *p; 已建立如下图所示的链表:            m              n                      k       ┌──┬──┐  ┌──┬──┐        ┌──┬──┐ head→│data│next┼

设指针变量p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A的后面插入结点B的操作序列(设双向链表中结点的两个指针域分别为llink和rlink)。

设指针变量p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A的后面插入结点B的操作序列(设双向链表中结点的两个指针域分别为llink和rlink)。解:q->llink=p; q->rlink=p->rlink; p->rlink->llink=q; p->rlink=q;

若有定义:struct node { int data;  struct node *next;}; 已建立如下图所示的链表:        ┌─┬─┐ ┌─┬─┐       ┌─┬─┐ head→│2│ ┼→│4│ ┼→…→│28│ ┼→NULL        └─┴─┘ └─┴─┘       └─┴─┘ 指针head指向链表首结点,以下函数的功能是(  )。void fun(struct node * head)  { struct node * p = head;  while(1)  {  p

若有定义:struct node { int data;  struct node *next;}; 已建立如下图所示的链表:        ┌─┬─┐ ┌─┬─┐       ┌─┬─┐ head→│2│ ┼→│4│ ┼→…→│28│ ┼→NULL        └─┴─┘ └─┴─┘       └─┴─┘ 指针head指向链表首结点,以下函数的功能是(  )。void fun(struct

若按如下定义,函数link的功能是(   )。其中head指向链表首结点,整个链表结构如下图:      ┌──┬─┐ ┌──┬─┐       ┌──┬──┐head→│data│ ┼→│data│ ┼→…→│data│NULL│      └──┴─┘ └──┴─┘       └──┴──┘ struct node  {int data;   struct node *next; }; void link(struct node* head)  {struct node *p=head;   whi

若按如下定义,函数link的功能是(   )。其中head指向链表首结点,整个链表结构如下图:      ┌──┬─┐ ┌──┬─┐       ┌──┬──┐head→│data│ ┼→│data│ ┼→…→│data│NULL│      └──┴─┘ └──┴─┘       └──┴──┘ struct node  {int data;   struct node *next; }; vo

若有以下定义:  struct node  { int data; struct node *next;  } *p,*q,*t; 指针p、t和q分别指向图中所示结点: p               t               q ↓              ↓              ↓┌──┬──┐ ┌──┬──┐ ┌──┬──┐│data│next┼→│data│next┼→│data│next┼→...└──┴──┘ └──┴──┘ └──┴──┘                    

若有以下定义:  struct node  { int data; struct node *next;  } *p,*q,*t; 指针p、t和q分别指向图中所示结点: p               t               q ↓              ↓              ↓┌──┬──┐ ┌──┬──┐ ┌──┬──┐│data│next┼→│data│next┼→│da