不带头结点链表,尾部插入法创建
/*创建一个链表,尾结点插入法*/ #include<stdio.h> #include<stdlib.h> #define DataType char/*节点类型*/ typedef struct node {DataType data;struct node *next; }ListNode,*LinkList;/* *不带头结点 *尾插入法的实现 *从头结点读取的时候,就是按照输入顺序读出的 */ LinkList createLinkList() {DataType ch;LinkList p,head,rear;head = rear = NULL;/*读取元素*/puts("输入节点的数据:");while((ch = getchar()) != '\n'){p = (LinkList)malloc(sizeof(ListNode));if(!p) exit(0);p->data = ch;p->next = NULL;if(NULL== head) head = p;else rear->next = p;rear = p;}return head; }/*在链表尾部插入元素*/ LinkList insertLinkList(LinkList head,DataType item) {LinkList temp,rear = head;while(rear->next)rear = rear->next;temp = (LinkList)malloc(sizeof(ListNode));if(!temp) exit(0);temp->data = item;temp->next = NULL;rear->next = temp;return head; } /* *从链表中查找元素并删除它 *支持删除相同元素 */ LinkList delLinkList(LinkList head,DataType item) {LinkList q,p = head;while(p){if(p->data == item){if(p == head){head = p->next;free(p);p = head;continue;}q->next = p->next;free(p);p = q->next;continue;}q = p;p = p->next;}return head; } void destroyLinkList(LinkList head) {LinkList p = head;while(head){p = head->next;free(head);head = p;} } void print(LinkList head) {LinkList p = head;while(p){printf("%c",p->data);p = p->next;} } int main() {char ch;LinkList p,head;head = createLinkList();if(NULL == head)printf("The LinkList is empty.\n");elseprint(head);puts("\n输入要插入的元素:");ch = getchar();getchar();head = insertLinkList(head,ch);if(NULL == head)printf("The LinkList is empty.\n");elseprint(head);puts("\n输入您要删除的元素:");ch = getchar();getchar();head = delLinkList(head,ch);if(NULL == head)printf("The LinkList is empty.\n");elseprint(head);destroyLinkList(head);return 0; }
转载于:https://www.cnblogs.com/plxx/p/3485150.html
不带头结点链表,尾部插入法创建相关推荐
- 每日程序C语言39-不带头结点的头插法创建链表
题目: 创建一个链表(1) 程序分析 不带头结点的头插法创建链表 首先创建的结点会出现在整个链表的最末端,所以数据的写入是逆序的 主要代码 main.c //创建结点类型 typedef struct ...
- 【数据结构笔记07】不带头结点链表实现多项式相加、相乘
本次笔记内容: 2.4 多项式的加减运算实现 P24 1.题意理解与多项式表示 P25 2.程序框架及读入多项式 P26 3.加法.乘法运算及多项式输出 文章目录 多项式加法运算 采用不带头结点的单项 ...
- 假设以带头结点的循环链表表示队列_数据结构·链表(C实现)
1.前言 <数据结构>是每个程序猿都应该掌握的"必修课",是一门研究"计算机如何存储.数组数据方式"的学科.它虽不及其他招式花哨.但却总能在关键时刻 ...
- 每日程序C语言41-带头结点的头插法创建链表
题目: 创建单链表(3) 程序分析 带头结点的头插法创建链表 带有头结点的链表,头结点中的data中没有放置任何元素,头结点存储的地址就是链表首元素存储的地址.头插法顾名思义就是从链表的头部进行插入, ...
- 带头结点的单链表的操作(C语言)
初始化 先了解头结点 头结点是一个特殊的结点,它的数据域不存储信息,通常情况下,头指针指向的结点为头结点,由于头结点不存储信息,所以不是数据结构中的实际结点,第一个实际结点其实是head->ne ...
- 每日程序C语言40-不带头结点的尾插法创建链表
题目: 创建一个链表(2) 程序分析 不带头结点的尾插法创建链表 这个是按照顺序插入的,尾插法,顾名思义就是从第一个节点的尾部插入,创建第一个节点之后,在循环中让前面的节点的next指针存储后面节点的 ...
- 带头结点头部插入创建链表
/*创建一个带头结点的链表,头部插入法创建*/ #include<stdio.h> #include<stdlib.h>#define DataType chartypedef ...
- C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
http://blog.csdn.net/xiaofeige567/article/details/27484137 C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表) ...
- 单链表创建之--头插法创建带头结点的单链表
单链表常见的创建方法有头插法和尾插法,这里记录头插法创建带头结点的单链表具体过程: 以C语言为例, 1)首先使用 typedef 关键字定义结点数据类型 typedef struct LNode{in ...
最新文章
- IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【中】...
- KVM中I/O设备直接分配和SR-IOV(十六)
- TCP/IP详解学习笔记(7)-广播和多播,IGMP协议
- “Null 是价值十亿美元的错误!”
- Q120:PBRT-V3,“直接光照”积分器(14.3章节)
- java调用flex_转载:在JavaScript中调用Flex方法
- hdu 1754 I hate it (线段树)
- IP这么火究竟什么才是有价值的IP
- 8.0强行转换后变成了7_南方Cass软件坐标转换方法!
- 计算机软件师社会需求,java软件工程师的社会环境如何?
- Kafka安全认证授权配置
- vue实现li列表的新增删除和修改
- linux 有线链接树莓派,linux-通过公共互联网连接到树莓派
- Symmetric and anti-symmetric BCs in FDTD and MODE
- Checkbox选中变化时回调函数
- 虾皮电商选品时必须注意哪些是违禁品
- 活动回顾|ShardingSphere X openGauss,将会产生怎样的化学反应?
- 脑机接口等在线学习课堂视频分享(供下载)
- 利用jad破解.class文件
- VC 2010 安装OpenCV2.4.3
热门文章
- POJ 3281 -- Dining(最大流,拆点建图)
- pyperclip模块
- CentOS 7.6 安装 Mysql8.0.17 rpm-bundle.tar解包 rpm安装(个人未验证)
- [BUUCTF-pwn]——not_the_same_3dsctf_2016
- 15.17 对缺乏潜在类型机制的补偿
- 5.8.1 创建类型实例
- HLS Pragma(3)config_storage
- Aptana:JavaScript开发利器
- # # # 正则
- bzoj 1597 土地购买