写在前面:

        关于“链表”的分析等,如果存在疑惑,想要探究过程,请读者参见文章:

                                   “链表(详解)- C++(顺序创建链表-尾插法)”

        之后再回到这个页面看C语言实现“链队列”, 为提高效率在这里不再重复进行分析介绍,C++与C语言分析过程相同,两者代码实现主要区别在于“编程语法”上,读者可以对比两篇文章中的代码部分体会。

代码实现

说明:采用C语言,编译环境为DevC++。

//导入头文件
#include<malloc.h>
#include<stdio.h>//创建结点结构
typedef struct Lnode{int data; //数据域 struct Lnode *next; //指针域
}Lnode,*Linklist; //顺序创建链表
void createList(Linklist &L){Linklist p,q; //辅助变量 L=(Linklist)malloc(sizeof(Lnode)); //为头结点L分配存储空间L->next=NULL; //头结点置为空q=L; //q指向L p = (Linklist)malloc(sizeof(Lnode)); //为新结点P分配存储空间scanf("%d",&p->data); //循环创建p、输入结点数据 while(p->data!=-10){p->next=q->next;q->next=p;q=p;p=(Linklist)malloc(sizeof(Lnode));scanf("%d",&p->data);}
} //输出链表元素
void printList(Linklist L){Linklist p; //辅助变量p=L->next; while(p!=NULL){printf("%d ",p->data);p=p->next;}printf("\n");
}//主函数
int main(){Linklist La; //定义链表 printf("创建L--请输入元素,以-10结束:\n");createList(La);printf("\n");printf("输出L验证:\n");printList(La);printf("\n");
}

运行结果

写在最后:

        读两遍下来,如果仍然有不清楚的地方,可在评论区留言。

        如果你有其他感到困惑的问题,欢迎留言。

C语言实现--顺序创建链表(尾插法)相关推荐

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

    题目: 创建单链表(4) 程序分析 带头结点的尾插法创建链表 尾插法顾名思义就是从结点的尾部进行插入,头结点不动,后面的元素依次加入,因为头结点的data中没有存放任何元素,故打印出来是任意存放的值 ...

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

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

  3. c语言尾插法步骤,头插法-顺序输出,尾插法-反向输出(C语言)

    #include #include #include typedef struct node{ int data; struct node *next; }Node, *pNode; pNode re ...

  4. 数据结构之单链表尾插法创建-RearCreate

    /* 单链表整表创建算法思路 1.声明一结点p和计数器变量i 2.初始化一空链表L 3.让L的头结点的指针指向NULL,即建立一个带头结点的单链表 4.循环: 生成一新结点赋值给p 随机生成一数字赋值 ...

  5. 单链表 尾插法 C语言

    注意用malloc开辟空间用的是node*,而其对应的访问也是用"->" #include<iostream> #include<cstdio> #i ...

  6. C语言的双向链表头插法和尾插法,指定节点删除

    文章目录 前言 头插法 尾插法 删除节点 测试代码如下 前言 双向链表和单链表的唯一区别就是多个一个指针域而已,该指针域可以访问链表的上一个节点. 关于构造双向链表的过程我们常见的有两种方法,和单链表 ...

  7. 单链表-两个线性表的合并(不破坏原链表+尾插法)

    题意: 令L1 = (X1,X2,X3,X4-Xn), L2 = (y1,y2,y3,y4-ym);是两个线性表.采用带头节点的链表存储,设计一个算法合并L1,L2,结果放在线性表L3中,要求如下: ...

  8. 单链表-两个线性表的合并1(破环原链表+尾插法)

    题意: 令L1 = (X1,X2,X3,X4-Xn), L2 = (y1,y2,y3,y4-ym);是两个线性表.采用带头节点的链表存储,设计一个算法合并L1,L2,结果放在线性表L3中,要求如下: ...

  9. C语言-链表的创建头插法和尾插法(有无头节点)

    文章目录 结构声明 1 头插法(有头节点) 2 头插法(无头节点) 3 尾插法(有头节点) 4 尾插法(无头节点) 结构声明 typedef int ElementType;typedef struc ...

最新文章

  1. 第十九章 9标签类Label
  2. HTTP文件浏览(静态文件+express4.x+md/code文件渲染)
  3. 【趣说】IT人的职场艰难,全藏在气氛组里!
  4. mysql maxtmptables_mysql的tmp_table_size和max_heap_table_size
  5. Linux 运维必备150 个命令,值得收藏!
  6. C语言常用字符串函数
  7. c语言指针和数组的联系
  8. Linux常用正则表达式
  9. win10连接共享打印机_win7共享出来的打印机部分电脑无法连接的问题
  10. WinRAR去广告方法,了解一下?
  11. 【Python游戏】实现一个恶搞游戏,粉丝大战xxx小游戏(狗头保命) | 附带源码
  12. 硬盘检测重映射扇区计数失败
  13. Matlab GUI animatedline 串口实时
  14. 激活数字营销新引擎,亚马逊云科技为企业带来数字化营销新体验
  15. 处理器架构 (十五) 国产cpu芯片与架构
  16. RISC-V学习整理
  17. 全国计算机等级考试.pdf,全国计算机等级考试试题49662.pdf
  18. 子类不能继承或覆盖父类的private方法
  19. 安凯Cloud39EV200/V300平台支持ssv6255的双频usb wifi移植过程
  20. 功率谱密度相关方法的MATLAB实现

热门文章

  1. int.TryParse
  2. ASEMI代理IXYB82N120C3H1艾赛斯IGBT二极管
  3. 关于Win10蓝屏终止代码:WHEA_UNCORRECTABLE_ERROR的解决方法
  4. VLAN(局域网扩展小知识~)
  5. 关于广告资源管理平台的设计思考与总结
  6. python元组和列表的联系_Python元组与列表
  7. 基于android手机相册,基于安卓的手机图片分类软件的设计与实现.pdf
  8. 【死磕Sharding-jdbc】---路由执行
  9. 中国互联网向收费模式转型 依靠虚拟商品营利
  10. 在CSDN CTO俱乐部的发言实录《如何管理你的软件测试工作》