/*创建一个链表,尾结点插入法*/
#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

不带头结点链表,尾部插入法创建相关推荐

  1. 每日程序C语言39-不带头结点的头插法创建链表

    题目: 创建一个链表(1) 程序分析 不带头结点的头插法创建链表 首先创建的结点会出现在整个链表的最末端,所以数据的写入是逆序的 主要代码 main.c //创建结点类型 typedef struct ...

  2. 【数据结构笔记07】不带头结点链表实现多项式相加、相乘

    本次笔记内容: 2.4 多项式的加减运算实现 P24 1.题意理解与多项式表示 P25 2.程序框架及读入多项式 P26 3.加法.乘法运算及多项式输出 文章目录 多项式加法运算 采用不带头结点的单项 ...

  3. 假设以带头结点的循环链表表示队列_数据结构·链表(C实现)

    1.前言 <数据结构>是每个程序猿都应该掌握的"必修课",是一门研究"计算机如何存储.数组数据方式"的学科.它虽不及其他招式花哨.但却总能在关键时刻 ...

  4. 每日程序C语言41-带头结点的头插法创建链表

    题目: 创建单链表(3) 程序分析 带头结点的头插法创建链表 带有头结点的链表,头结点中的data中没有放置任何元素,头结点存储的地址就是链表首元素存储的地址.头插法顾名思义就是从链表的头部进行插入, ...

  5. 带头结点的单链表的操作(C语言)

    初始化 先了解头结点 头结点是一个特殊的结点,它的数据域不存储信息,通常情况下,头指针指向的结点为头结点,由于头结点不存储信息,所以不是数据结构中的实际结点,第一个实际结点其实是head->ne ...

  6. 每日程序C语言40-不带头结点的尾插法创建链表

    题目: 创建一个链表(2) 程序分析 不带头结点的尾插法创建链表 这个是按照顺序插入的,尾插法,顾名思义就是从第一个节点的尾部插入,创建第一个节点之后,在循环中让前面的节点的next指针存储后面节点的 ...

  7. 带头结点头部插入创建链表

    /*创建一个带头结点的链表,头部插入法创建*/ #include<stdio.h> #include<stdlib.h>#define DataType chartypedef ...

  8. C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)

    http://blog.csdn.net/xiaofeige567/article/details/27484137 C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表) ...

  9. 单链表创建之--头插法创建带头结点的单链表

    单链表常见的创建方法有头插法和尾插法,这里记录头插法创建带头结点的单链表具体过程: 以C语言为例, 1)首先使用 typedef 关键字定义结点数据类型 typedef struct LNode{in ...

最新文章

  1. IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【中】...
  2. KVM中I/O设备直接分配和SR-IOV(十六)
  3. TCP/IP详解学习笔记(7)-广播和多播,IGMP协议
  4. “Null 是价值十亿美元的错误!”
  5. Q120:PBRT-V3,“直接光照”积分器(14.3章节)
  6. java调用flex_转载:在JavaScript中调用Flex方法
  7. hdu 1754 I hate it (线段树)
  8. IP这么火究竟什么才是有价值的IP
  9. 8.0强行转换后变成了7_南方Cass软件坐标转换方法!
  10. 计算机软件师社会需求,java软件工程师的社会环境如何?
  11. Kafka安全认证授权配置
  12. vue实现li列表的新增删除和修改
  13. linux 有线链接树莓派,linux-通过公共互联网连接到树莓派
  14. Symmetric and anti-symmetric BCs in FDTD and MODE
  15. Checkbox选中变化时回调函数
  16. 虾皮电商选品时必须注意哪些是违禁品
  17. 活动回顾|ShardingSphere X openGauss,将会产生怎样的化学反应?
  18. 脑机接口等在线学习课堂视频分享(供下载)
  19. 利用jad破解.class文件
  20. VC 2010 安装OpenCV2.4.3

热门文章

  1. POJ 3281 -- Dining(最大流,拆点建图)
  2. pyperclip模块
  3. CentOS 7.6 安装 Mysql8.0.17 rpm-bundle.tar解包 rpm安装(个人未验证)
  4. [BUUCTF-pwn]——not_the_same_3dsctf_2016
  5. 15.17 对缺乏潜在类型机制的补偿
  6. 5.8.1 创建类型实例
  7. HLS Pragma(3)config_storage
  8. Aptana:JavaScript开发利器
  9. # # # 正则
  10. bzoj 1597 土地购买