码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【数据结构】带头结点的单链表的头插法


    首先要说明几个概念:

    1. 头结点,是单链表的头结点,一般不存储数据,它指向单链表的第一个实际元素。但它不仅仅只是一个普通的结点,它包含了整个链表的结构,也就是包含了所有插入的结点
    #include
    #include
    
    typedef struct LNode {
    	int data;
    	struct LNode *next;	
    }LNode *LinkList;
    
    // 头插法建立一个单链表:在单链表的头部插入结点,从而建立一个单链表。
    // 参数是一个LinkList类型的引用L,表示链表的头结点 
    LinkList head_insert(LinkList &L) {
    	LNode *s;
    	int x;
    	L = (LinkList)malloc(sizeof(LNode));		// 创建头结点,用malloc函数给头结点申请一个存储空间
    	L->next=NULL;		// 初始化为空表,由于头结点指向链表的第一个实际元素,所以L->next=NULL,就表示链表为空
    	scanf("%d",&x);		// 用scanf函数输入一个整数x,只要x!=9999,就执行循环体 
    	while(x!=9999) {
    		s=(LNode *)malloc(sizeof(LNode));		// 创建新结点,用malloc函数给新结点分配一个存储空间 
    		s->data=x;		// 将输入的x的值赋值给s->data,即s的数据域 
    		s->next=L->next;	// 头结点L指向链表的第一个元素,将L的指针指向赋值给s,也就是说现在s指向了链表的第一个元素 
    		L->next=s;		// 再将s赋值给L->next,也就是说头结点L指向了s,头结点L只会指向链表的第一个实际元素,所以s现在成为了链表的第一个元素,头插法结束 
    		scanf("%d", &x); 
    		/**
    		* 再用scanf函数输入一个整数x,然后走while的条件判断,
    		* 如果true,就接着执行循环体,依次往单链表的头部插入新结点,
    		* 每次插入的新结点都成为链表的第一个结点,而原来的结点依次向后移动,
    		* 如果false,就返回L 
    		*/	
    	} 
    	return L;		// L虽然只是整个链表的头结点,但它不仅仅是一个普通的结点,它包含了整个链表的结构,也就是包含了所有插入的结点 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
  • 相关阅读:
    JavaScript速成课--面向对象程序设计
    10:00面试,10:06就出来了,问的问题有点变态。。。
    嵌入式系统中偶发性问题
    2006-2019年全国30省绿色创新效率、绿色投资效率:基于SBM-DEA测算面板数据(数据+Stata代码)
    RichView TRVDocParameters 页面参数设置
    【React组件】github搜索案例之 兄弟组件通信---PubSubJS / fetch
    layui表格删除最后一页数据时,不会刷新到前一页问题:
    蓝桥杯备赛第五篇(动态规划)
    使用HTML制作静态宠物网站——蓝色版爱宠之家(HTML+CSS)
    STM32实现光照强度传感器(BH1750)(标准库与HAL库实现)
  • 原文地址:https://blog.csdn.net/bbt953/article/details/133763060
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号