以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输人数据为-1时,表示
以下程序实现带有头结点的单链表的建立,链表中每个结点包含数据域data(字符型)和指针域next,所建立链表的头指针由参数phd传回调用程序。在空格处填入正确内容。 include<stdio.h> include<stdlib, h> struct node { char data; struct node * next; }; void creatlist(【 】) { char ch; struct node * s, * r; * phd= malloc(sizeof (struct node)); r= * phd; ch=getchar(); while(ch !=@) { s = malloc(sizeof(struct node)); s->data=ch; r->next=s; r=s; ch= getchar(); }; r->next=【 】; } main () { struct node * head; head= NULL; creatlist(【 】) }
以下程序中函数fun()的功能是构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单向链表中所有结点中的字符串。请填空完成函数disp。
include <atdio.h> typedef struct node /*链表结点结构*/ { char sub[3]; struct node * next; } Node Node ~un(char s) /*建立链表*/ {......} void disp(Node * h) { Node * Ps p=h->next; while(【 】) { printf("%s\n",p->suh);p= 【 】;} } main() { Node * hd; hd = fun(); disp(hd) ;prinff(" \n" );
A.无头结点的单向链表
B.带头结点的单向链表
C.带头结点的双循环链表
D.带头结点的单循环链表
设线性表为(1,13,16,18) ,以下程序用说明结构变量的方法建立头指针为head,尾结,点为18的单向循环链表,并输出链表中各结点中的数据。
#define NULL 0
Void main()
{
NODE a,b,c,d,*head,*p;
a.data=1;
b.data=13;
c.data=16;
d.data=18; /* d是尾结点*/
head=();
a.next=&b;
d.data=18; /* d是尾结点*/
head=();
a.next=&b;
b.next=&c;
c.next=&d;
()=head; /*以上结束建立循环链表的过程*/
p=head; /* p为工作指针,准备输出链表*/
do
{
printf("%d/n",());
();
}while();
}
输出链表中各结点中的数据域data。struct node { int data;struct
node *next; };
typedef struct node NODE; #define
NULL 0 void main() { NODE *head,*p; p=head;
/*p为工作指针*/ do {
printf("%d/n",
}while();}