链表LTwo,5个结点,一个头结点");
36 createListByHead(<wo, 5);
37
38 //求长度
39 getLength(LTwo);
40
41 //遍历 edcba
42 puts("遍历表中结点元素");
43 traversalList(LTwo);
44
45 //按值查找
46 puts("查找LTwo表的结点数据 = ‘2’的结点");
47 val = getElemByValue(LTwo, '2');
48
49 if (val)
50 {
51 printf("找到了val,地址 = %p \n", &val);
52 }
53
54 puts("‘2’在表 LTwo 里没找到!");
55
56 //插入结点
57 puts("在位置 1 之后插入一个结点,里面数据是 ‘p’");
58 insertList(LTwo, 1, 'p');
59
60 //遍历 pedcba
61 puts("开始遍历表LTwo");
62 traversalList(LTwo);
63
64 //按序查找
65 puts("查找位置=2的结点,并打印出它的数据内容");
66 getElemByNum(LTwo, 2, &value);
67
68
69 //删除结点
70 puts("删除位置 1 的结点,并打印出删除结点的数据");
71 deleteList(LTwo, 1, &value);
72 printf("%c\n", value);
73
74 //遍历 pedcba
75 puts("再次遍历链表LTwo");
76 traversalList(LTwo);
77
78 //求链表长度,把长度保存的头结点
79 puts("计算链表长度,并把长度保存到了LTwo的头结点");
80 getLength(LTwo);
81 printf("%d\n", LTwo->data);
82
83 //必须有销毁
84 puts("动态存储的结构用完一定要销毁");
85 destoryLinkList(<wo);
86
87 //此时销毁的表长规定是0
88 puts("销毁之后,链表长度:");
89 getLength(LTwo);
90
91 system("pause");
92 return 0;
93 }
复制代码
scanf函数的特点是接受单词,而不是字符串,字符串一般是gets函数,单个字符接收是getchar函数,因为scanf函数遇到空白字符(tab,空格,回车,制表符等)就不再读取输入,那字符串怎么能方便输入?
但是输入队列里如果还有字符,那么会留到缓存内,需要在定义里使用getchar函数来消除回车带来的影响。