若有以下定义: struct node { int data; struct node *next; } struct node *head,*p; 已建立如下图所示的链表: p ↓ ┌──┬──┐ ┌──┬──┐ ┌──┬──┐ head →│data│next┼→│data│next┼→... →│data│NULL│ └──┴──┘ └──┴──┘ └──┴──┘ 能删除指针p所指向结点的程序段是( )。
若按如下定义,函数link的功能是( )。其中head指向链表首结点,整个链表结构如下图: ┌──┬─┐ ┌──┬─┐ ┌──┬──┐ head →│data│ ┼→│data│ ┼→…→│data│NULL│ └──┴─┘ └──┴─┘ └──┴──┘ struct node {int data; struct node *next; }; void link(struct node* head) {struct node *p=head; while(p!=NULL) { if(p->data%2==1) printf("%d ",p->data); p=p->next; } }
以下程序的输出结果是( )。 #include <stdio.h> #include <stdlib.h> typedef struct node {int data; struct node *next; }Node; Node list[4]={{4,&list[1]},{3,&list[2]},{2,&list[3]},{1,0}}; void output(Node *head) { Node *p=head; while(p!=NULL) { printf("%d ",p->data); p=p->next; } } void main() {output(list); }
若有以下定义: 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 m,n,k, *head, *p; 已建立如下图所示的链表: m n k ┌──┬──┐ ┌──┬──┐ ┌──┬──┐ head →│data│next┼ →│data│NULL│ p → │data│next│ └──┴──┘ └──┴──┘ └──┴──┘ 指针head指向变量m, m.next指向变量n,p指向变量k,不能把结点k插到m和n之间形成新链表的程序段是( )。
若有定义: 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 = p->next; printf("%d ", p->data ); if(!p) break; } }