头插法创建链表

Linklist Create_list(Linklist head){//头插法创建单链表head =(Linklist)malloc(sizeof(LNode));//为头指针开辟内存空间LNode *node=NULL;//定义工作指针int count=0;//创建节点个数head->next=NULL;node=head->next;//最后一个节点的指针域永远保存为NULLprintf("输入创建链表的长度\n");scanf("%d",&count);printf("链表创建完毕!\n");for(int i=0;i<count;i++){node=(LNode *)malloc(sizeof(LNode));//为新节点开辟内存空间node->data=i;//为新节点赋值node->next=head->next;//头指针所指向的下一个节点的地址,赋值给新创建节点的nexthead->next=node;//将新创建的节点的地址赋值给头指针的下一节点}return head;
}

访问所有元素

void printL(Linklist L){//访问所有元素LNode *p;p=L->next;while(p!=NULL){printf("第%d个元素为%d\n",p->data,p->data);p=p->next;}
}

完整实现

#include<stdio.h>
#include<stdlib.h>typedef struct LNode{//定义结构体声明表的结构int data;//数据域struct LNode *next;//指针域
}LNode,*Linklist;Linklist Create_list(Linklist head){//头插法创建单链表head =(Linklist)malloc(sizeof(LNode));//为头指针开辟内存空间LNode *node=NULL;//定义工作指针int count=0;//创建节点个数head->next=NULL;node=head->next;//最后一个节点的指针域永远保存为NULLprintf("输入创建链表的长度");scanf("%d",&count);printf("链表创建完毕!\n");for(int i=0;i<count;i++){node=(LNode *)malloc(sizeof(LNode));//为新节点开辟内存空间node->data=i;//为新节点赋值node->next=head->next;//头指针所指向的下一个节点的地址,赋值给新创建节点的nexthead->next=node;//将新创建的节点的地址赋值给头指针的下一节点}return head;
}
void printL(Linklist L){//访问所有元素LNode *p;p=L->next;while(p!=NULL){printf("第%d个元素为%d\n",p->data,p->data);p=p->next;}
}void main(){LNode *head;//声明头节点
LNode* p = Create_list(head); // 引用头节点创建链表
printL(p);
}

具体效果


总结:头插法创建链表实现的是逆序输入,每一个新建的元素都放在头节点之后,可以用作之后降序排列。

头插法创建链表并输出所有元素相关推荐

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

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

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

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

  3. java怎样建立头插法单链表,链表的创建,头插法创建单链表(带源码+解析)

    头插法创建单,即通过不断地将新创建的结点添加到链表的第一个数据结点之前,作为链表新的首个数据结点的方法,创建单链表. 根据链表是否有头结点,头插法插入结点的位置有所不同: 若链表存在头结点,头插法需将 ...

  4. 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表

    http://blog.csdn.net/abclixu123/article/details/8210109 链表也是线性表的一种,与顺序表不同的是,它在内存中不是连续存放的.在C语言中,链表是通过 ...

  5. 头插法和尾插法创建链表(有无头结点)

    头插法和尾插法创建链表(有无头结点) 文章目录 头插法和尾插法创建链表(有无头结点) 1 头插法 1.1头插法建表规则: 1.2 头插法建表代码实现 2 尾插法 2.1 尾插法建表规则: 2.2 尾插 ...

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

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

  7. C语言邻接表表示法创建无向图并输出

    C语言邻接表表示法创建无向图并输出 邻接表是图的一种链式存储结构,对图的每个顶点建立一个单链表,单链表第一个结点存放顶点信息,其余存放有关边信息. 邻接表由表头结点表和边表组成. 邻接表存储结构 #i ...

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

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

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

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

最新文章

  1. WindML相关知识和图形设备驱动程序开发(一)
  2. docker安装rocketmq_RabbitMQ 介绍amp;安装
  3. 我想变得富有的10个理由
  4. 获取iOS设备当前ip地址
  5. 精华阅读第6期|程序猿的世界,你不懂!
  6. C语言中volatile关键字与汇编__volatile__
  7. Redis(八):进阶篇 - 事务
  8. 高仿QQ创建搜索框以及拼音检索好友
  9. jdbc连接云数据库mysql_java基于jdbc连接mysql数据库功能实例详解
  10. 病毒式传播ip_病毒式传播后网络安全实践的简单指南
  11. H盘显示数据错误循环冗余检查要怎样办啊
  12. Mockplus: 让小白产品经理上手就用的原型图设计工具
  13. 想将PPT的文字转换到Word文档?看这一篇就够了!!!
  14. Efficientnet笔记:各个框架最适合的图像尺寸
  15. 青少年CTF - Web - Flag在哪里 Wp WriteUp
  16. java盘古分词_.NET使用Lucene.Net和盘古分词类库实现中文分词
  17. 视频直播网站源码,uniapp页面跳转的几种方法和区别
  18. 计算机网络:08---带宽与吞吐量
  19. Windows - win11取消鼠标右键菜单折叠的方法
  20. 算法学习-连续子数组求和最大值

热门文章

  1. FFmpeg浅尝辄止(二)——YUV视频序列编码为视频 ~~ 新版修改版-调通
  2. 站在2021年开端,我从AWS那里看到了云计算未来
  3. 信息学奥赛一本通 1198:波兰表达式 | OpenJudge NOI 2.2 1696:波兰表达式
  4. C#通过OpenCv获取网络摄像头(IP摄像头)拍摄到的视频
  5. Revit楼板:建筑楼板和结构楼板区别和垫层生成
  6. 『Java安全』Tomcat内存马_动态注册Servlet内存马
  7. FairyGUI学习使用
  8. MD5解密 解密网站
  9. html5 3d全景代码,HTML5教程 三维全景详解
  10. 科大讯飞2014公布会看点二:智能语音装进车载车机!