/*创建一个带头结点的链表,头部插入法创建*/
#include<stdio.h>
#include<stdlib.h>#define DataType chartypedef struct node
{DataType data;struct node *next;
}ListNode,*LinkList;/*创建一个带头结点的链表*/
LinkList createLinkList()
{char ch;LinkList temp,head = (ListNode*)malloc(sizeof(ListNode));head->next = NULL;puts("\n输入链表节点的数值:");while((ch = getchar()) !='\n'){temp = (ListNode*)malloc(sizeof(ListNode));if(!temp) exit(0);temp->data = ch;temp->next = head->next;head->next = temp;}return head;
}
/*在链表的结尾出插入新节点*/
void insertLinkList(LinkList head,DataType item)
{LinkList p,temp = (ListNode*)malloc(sizeof(ListNode));temp->data = item;temp->next = NULL;if(!temp) exit(0);p = head;while(p->next)p = p->next;p->next = temp;
}void print(LinkList head)
{LinkList p = head->next;while(p){printf("%c",p->data);p = p->next;}putchar(10);
}
void destroyLinkList(LinkList head)
{LinkList p,q;p = head->next;while(p){q = p->next;free(p);p = q;head->next = q;}
}
int main()
{char ch;LinkList head;head = createLinkList();print(head);puts("\n输入要插入的元素值:");ch = getchar();getchar();insertLinkList(head,ch);print(head);destroyLinkList(head);return 0;
}

转载于:https://www.cnblogs.com/plxx/p/3485218.html

带头结点头部插入创建链表相关推荐

  1. 已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值x为的结点插入到表L中,使L仍然有序。

    创建链表,main函数中通过while循环找出该插入的位置,插入.应注意L头节点位置的变化,利用一个ptr来记录L的头节点. /*已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值 ...

  2. (不带头结点的)单链表增删查改,逆置单链表(两种方法),求两个单链表的第一个公共结点,合并两个单链表,单循环链表中判断第一个入环点,约瑟夫环

    补充了每个算法的基本思想,并且画了思路图,源代码都经过调试成功 1.SlistNode.c文件 (1) (不带头结点的)单链表增删查改 #include "SlistNode.h" ...

  3. 单链表(带头结点)的创建

    题目描述 1.问题描述 给出初始数据,实现单链表的定义.创建.输出. 2.算法 单链表结点的存储结构包含两部分:数据.下一结点指针. 单链表的创建:输入n个数据e,若数据e不在单链表中,为数据e分配结 ...

  4. 创建一个不带头结点的循环单链表并进行相关操作

    所谓循环链表就是最后一个节点的指针域不是指向空,而是指向第一个节点,这样就实现了循环. 下面是c语言代码实现 LinkList create_linklist() {int len; //用来存储节点 ...

  5. C语言实现前部插入创建链表以及尾部插入链表

    C语言实现由输入的数据来创建链表. 插入部分分为头部插入和尾部插入. 取消掉对应的注释就行. 注意:#define N 10的N一般根据题目要求取最大值+1.保证能够输入所有数. 点击这里,了解更多算 ...

  6. 设计一代码,逆置带头结点的动态单链表L

    有两种方法: 一是:用头插法建立单链表,自然而然就实现了逆置的动态链表. 代码: #include<stdio.h> #include<malloc.h> typedef in ...

  7. 王道综合题17.设计一个算法用于判断带头结点的循环双链表是否对称及其注意思考:while循环第二个判断条件易误写成p->next!=q,分析这样会产生什么问题。

    算法思想: 让p从左向右扫描,q从右向左扫描,直到它们指向同一结点(p==q,当循环双链表中结点个数为奇数时)或相邻(p->next=q或q->prior=p,当循环双链表中结点个数为偶数 ...

  8. (不带头结点的)单链表逆置

    ListNode* NotHeadReverse(LinkList head) {if (head == NULL || head->next == NULL){return head;}Lis ...

  9. 建立带头结点的单链表

    [问题描述] 设有头结点单链表,实现单链表建立算法. [输入形式] 第一行输入一个N(N大于等于1,小于1000): 第二行输入N个整数,以空格作为分隔,创建长度为N的单链表. [输出形式] 输出建立 ...

最新文章

  1. 对卫星网络及内容的安全防护措施
  2. FPGA之道(66)代码中的约束信息(三)存储器以及寄存器的相关约束
  3. Attribute class invalid for tag present according to TLD
  4. lucene实战--打分算法没有那么难!
  5. 基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作
  6. 【转】WPF从我炫系列4---装饰控件的用法
  7. 排序与查找 详细分析
  8. python批量实现将文件夹内的每张图片分割成多张
  9. 杭电1863+1879
  10. mysql中find_in_set()函数的使用(转载)
  11. ipMonitorAdministratorGuide
  12. pandas 两列数据合并
  13. 基于SSH开发报刊订阅管理系统的设计与实现
  14. SNF快速开发平台2019-权限管理模型-平台服务(多平台\多组织\SAAS\多系统)
  15. matlab教程黄金分割,Matlab程序设计在黄金分割法教学中的应用
  16. GPIO的配置及使用(MC9S08AW60)
  17. 国务院推进电子签章在招投标领域应用,实现招投标全流程电子化
  18. Linux:删除重复文件工具fdupes
  19. 深入解析:svm支持向量机python代码
  20. 解决RStudio Warning message:文件名、目录名或卷标语法不正确

热门文章

  1. C语言 | typedef
  2. html5 css3炫酷效果,28种纯CSS3炫酷loading加载动画特效
  3. 粒子群算法组卷_粒子群(PSO)算法概念及代码实现
  4. vba 当前文件名_VBA代码解决方案第77讲内容:如何导出文件
  5. matlabif语句怎么用_公益心 码客行(2)—— 简单语句
  6. 计算机VB整除,【原创】VB中的整除运算和转换函数
  7. linux 运行java jar_linux运行jar包、查看jar包进程、停止jar包
  8. pat 乙级 1014 福尔摩斯的约会 (C++)
  9. 【渝粤教育】国家开放大学2018年春季 0054-21T合同法 参考试题
  10. 【渝粤教育】国家开放大学2018年春季 0050-21T民族理论与民族政策 参考试题