1
2 #include <stdio.h>
3 #include <stdlib.h>
4
5 #define ElemType char
6 typedef struct Node /*结点类型定义*/
7 {
8 ElemType data;
9 struct Node * next;
10 }Node, *LinkList; /* LinkList为结构指针类型*/
11
12
13 LinkList CreateFromHead() /*通过键盘输入表中元素值,利用头插法建单链表,并返回该单链表头指针L*/
14 {
15 LinkList L;
16 Node *s;
17 char c;
18 int flag=1;
19 L=(LinkList)malloc(sizeof(Node)); /*建立头结点*/
20 L->next=NULL; /*建立空的单链表L*/
21 while(flag) /* flag初值为1,当输入"$"时,置flag为0,建表结束*/
22 {
23 c=getchar();
24 if(c!='$')
25 {
26 s=(Node*)malloc(sizeof(Node)); /*建立新结点s*/
27 s->data=c;
28 s->next=L->next /*将s结点插入表头*/
29 L->next=s; /*移动栈指针,指向新添加的元素*/
30 }
31 else
32 flag=0;
33 }
34 return L;
35 }
36
37 void main()
38 {
39 LinkList l;
40 Node *p;
41 printf("Creat stack from head,pleas enter the members ,end width $ !\n");
42 l = CreateFromHead();
43 p = l->next;
44 while(p!=NULL)
45 {
46 printf("%c\n",p->data);
47 p=p->next;
48 }
49 }
50
2 #include <stdio.h>
3 #include <stdlib.h>
4
5 #define ElemType char
6 typedef struct Node /*结点类型定义*/
7 {
8 ElemType data;
9 struct Node * next;
10 }Node, *LinkList; /* LinkList为结构指针类型*/
11
12
13 LinkList CreateFromHead() /*通过键盘输入表中元素值,利用头插法建单链表,并返回该单链表头指针L*/
14 {
15 LinkList L;
16 Node *s;
17 char c;
18 int flag=1;
19 L=(LinkList)malloc(sizeof(Node)); /*建立头结点*/
20 L->next=NULL; /*建立空的单链表L*/
21 while(flag) /* flag初值为1,当输入"$"时,置flag为0,建表结束*/
22 {
23 c=getchar();
24 if(c!='$')
25 {
26 s=(Node*)malloc(sizeof(Node)); /*建立新结点s*/
27 s->data=c;
28 s->next=L->next /*将s结点插入表头*/
29 L->next=s; /*移动栈指针,指向新添加的元素*/
30 }
31 else
32 flag=0;
33 }
34 return L;
35 }
36
37 void main()
38 {
39 LinkList l;
40 Node *p;
41 printf("Creat stack from head,pleas enter the members ,end width $ !\n");
42 l = CreateFromHead();
43 p = l->next;
44 while(p!=NULL)
45 {
46 printf("%c\n",p->data);
47 p=p->next;
48 }
49 }
50