将字符存储到带有头结点的单向链表中
来源:互联网 发布:全国网络平台监管系统 编辑:程序博客网 时间:2024/05/18 00:54
- #include<stdio.h>
- #include<stdlib.h>
- struct node//定义结点结构体
- {
- char ch;
- struct node *next;
- };
- typedef struct node Node;//重命名 结点结构体变量
- typedef struct node* Link;//重命名 指向结点结构体的指针变量
- int strlen_s(char *s)//求字符串长度
- {
- int i = 0;
- while (*s != '\n')
- {
- i++;
- s++;
- }
- return i;
- }
- void create_link(Link *head)//创建链表,
- {
- *head = NULL;//空链表
- }
- void is_malloc_ok(Link new_node)//判断新结点是否分配空间成功
- {
- if (NULL == new_node)
- {
- printf("malloc error!\n");
- exit(-1);
- }
- }
- void create_new_node(Link *new_node)//创建新结点
- {
- *new_node = (Link)malloc(sizeof(Node));
- is_malloc_ok(*new_node);
- }
- void insert_tail(Link *head, Link new_node)//尾插新结点
- {
- Link tmp;
- tmp = *head;
- if (NULL == *head)//空链表,只能头插
- {
- new_node->next = *head;
- *head = new_node;
- }
- else
- {
- while (tmp->next != NULL)//找到尾结点
- {
- tmp = tmp->next;
- }
- tmp->next = new_node;
- new_node->next = NULL;
- }
- }
- void display_link(Link head)//显示结点内容
- {
- Link tmp;
- tmp = head;
- if (NULL == head)//空链表
- {
- printf("Link is empty!\n");
- return ;
- }
- while (tmp != NULL)
- {
- printf("ch is '%c'\n",tmp->ch);
- tmp = tmp->next;
- }
- }
- void makeEmpty(Link *head)//清空链表,释放结点空间
- {
- Link tmp;
- tmp = *head;
- while(tmp != NULL)
- {
- *head = tmp->next;
- free(tmp);
- tmp = tmp->next;
- }
- }
- int main()
- {
- Link head = NULL;
- Link new_node = NULL;
- int i;
- int len;
- char s[20];
- printf("Enter string(<=20)!\n");
- fgets(s,20,stdin);
- len = strlen_s(s);
- create_link(&head);//创建链表
- for (i = 0; i < len; i++)
- {
- create_new_node(&new_node);//创建新结点
- new_node->ch = s[i];//为新结点成员赋值
- insert_tail(&head, new_node);//尾插新结点
- }
- display_link(head);//显示链表
- makeEmpty(&head);//清空链表,释放空间
- display_link(head);//显示链表
- return 0;
- }
0 0
- 将字符存储到带有头结点的单向链表中
- 建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。
- 建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中
- 程序功能:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。
- 程序功能:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。
- 程序功能:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。
- 程序功能:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。
- (学习java)带有头结点的单向循环链表
- 带有头结点的单链表的操作
- 带有头结点的链表实现
- 带有头结点的双向链表
- 实现带有头结点的链表
- 有头结点的单向链表
- 将带有头结点head的单链表中序号为奇数的倒序,偶数不变
- bo2-2.cpp 带有头结点的单链表(存储结构由c2-2.h定义)的基本操作(12个)
- 带有头结点的链表与没有头结点的链表的对比
- C++ 带有头结点的单链表的简单实现
- 带有头结点的循环单链表的相关操作
- XML中DTD介绍及使用
- 简单的学生信息处理程序实现
- android关闭日志
- C++继承:公有,私有,保护
- hdu 5971 Wrestling Match(队列)
- 将字符存储到带有头结点的单向链表中
- 算法-动态规划
- 动态Fragment 切换
- 1951: [Sdoi2010]古代猪文
- 1106
- Codeforces 710E Generate a String【dp】好题!
- 编译连接的整个过程和详细的每个过程
- 用view画圈带字
- leetCode练习(128)