函数功能: 在带头结点单链表中删除一个值为x的结点,函数返回值为头指针。请选择正确的选项链式表定义如下:typedef int datatype;typedef struct link_node{ datatype info; struct link_node *next; }node;函数实现如下:node *dele(node *head,datatype x) { node *pre= (1) ,*q; q=head->next; while( (2) )
{ pre=q; q=q->next; }
if(q)
{ pre->next=q->next;
//删除q free(p); } return head; }
{ pre=q; q=q->next; }
if(q)
{ pre->next=q->next;
//删除q free(p); } return head; }
举一反三
- 已知不带头结点的单链表L,下面用函数实现的在第一个元素前面插入值为x的元素结点的算法错误的是( ) A: void insert(List *L,elemtype x){ ptr p=*L; node d=new node(x); ptr q=&d; q->next=p; L=&q;} B: List * insert(List *L,elemtype x){ ptr p=*L; node d=new node(x); ptr q=&d; q->next=p; L=&q; return L;} C: void insert(List *L,elemtype x){ ptr p=*L; node d=new node(x); ptr q=&d; p->next=q; L=&q;} D: List * insert(List *L,elemtype x){ ptr p=*L; node d=new node(x); ptr q=&d; q->next=p; return &q;}
- 有以下程序 #include struct NODE {int num; struct NODE *next; } main() {struct NODE *p,*q,*r; p=(struct NODE *)malloc(sizeof(struct NODE)); q=(struct NODE *)malloc(sizeof(struct NODE)); r=(struct NODE *)malloc(sizeof(struct NODE)); p->num=10;q->num=20;r->num=30; p->next=q;q->next=r; printf("%d ",p->num+q->next->num); } 程序运行后的输出结果是( )
- 中国大学MOOC: 下面程序执行后的输出结果是:#include <iostream>#include <cmath>using namespace std;struct NODE {int num; struct NODE *next;};int main(){struct NODE *p,*q,*r;p=new NODE;q=new NODE;r=new NODE;p->num=10; q->num=20; r->num=30;p->next=q;q->next=r;cout<<p->num+q->next->num<<endl; return 0;}
- 有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。struct node { int data; struct node *next; } *p, *q, *r;[*] 现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是() A: r->next=q; q->next=r->next; p->next=r; B: q->next=r->next; p->next=r; r->next=q; C: p->next=r; q->next=r->next; r->next=q; D: q->next=r->next; r->next=q; p->next=r;
- 28. 有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。 struct node { int data; struct node *next; } *p, *q, *r; 现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是( )。 A: ->next=q; q->next=r->next; p->next=r; B: q->next=r->next; p->next=r; r->next=q; C: p->next=r; q->next=r->next; r->next=q; D: q->next=r->next; r->next=q; p->next=r;