广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言如何实现头插法建立单链表
  • 301
分享到

C语言如何实现头插法建立单链表

2024-04-02 19:04:59 301人浏览 安东尼
摘要

目录怎么将结点一个个插入在某个结点前面呢?然后再在头结点的后面插入新的结点首先要明确一点,利用头插法建立出来的单链表的输出都是逆序的(就是和你的输入顺序反着来的)然后就是要明确生成的

首先要明确一点,利用头插法建立出来的单链表的输出都是逆序的(就是和你的输入顺序反着来的)然后就是要明确生成的新结点是一个个加在某个结点的前面的(这个结点不一定是头结点,下面的代码是插在p的前头),这就是头插法。

怎么将结点一个个插入在某个结点前面呢?

下面的图可以比较详细的展示出来:

至少对我来说挺详细的哈

p->next=head->next; //一开始 head->next=NULL; 
head->next=p;//然后将p指针指向head结点指向的下一个结点

以下是图像展示:

然后再在头结点的后面插入新的结点

再执行一遍上面的代码, 然后head后面就连上了新的结点,p原本指向的结点前面也增加了一个新的结点,然后p就指向新加入的结点了。

以下是图像展示:

注!:要先写p->next=head->next,然后才能写head->next=p;因为如果先写head->next=p,然后再写head->next=p->next,结果就会变成head->next原本要指的是插入的结点,然后又p->next=head->next,那 head->next最后指向的就不是要插入的结点了,变成了p要指向的下一个结点,而p->next一开始就是NULL。

也就是说,新的节点根本就没连上去,p的前面根本没有插入新的结点,head->next也一直是NULL。(这段看不懂就不看了)

然后就是不断地重复上述过程,在头节点和新插入的节点之间建立联系,同时在新插入的节点和上一个插入的节点之间建立联系,最终得到一个完整的单链表。

以下是代码展示:

#include <bits/stdc++.h>
 
using namespace std;
//利用头插法建立的单链表输出都是逆序的
typedef struct node
{
    int data;//数据域,存放数据
    struct node *next;//指针域,存放指针,存放后继结点的信息
}no;//no是结构体的名字 
 
int main()
{
    no *head,*tail,*p;
    head=new no;
    head->next=NULL;
    tail=head;
    int n;
    cin>>n;
    while(n)
    {
        p=new no;
        p->data=n;
        p->next=head->next;//第一次的时候p->next指的是NULL,
        //再往后,指的就是头结点后面的结点
        head->next=p;//指针p也可以向前移动的哦,不一定就是要向后移动
        cin>>n;
    }
    p=head->next;
    while(p!=NULL)
    {
        printf("%d ",p->data);
        p=p->next;
    }
    printf("\n");
    return 0;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: C语言如何实现头插法建立单链表

本文链接: https://www.lsjlt.com/news/154268.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言如何实现头插法建立单链表
    目录怎么将结点一个个插入在某个结点前面呢?然后再在头结点的后面插入新的结点首先要明确一点,利用头插法建立出来的单链表的输出都是逆序的(就是和你的输入顺序反着来的)然后就是要明确生成的...
    99+
    2022-11-13
  • C语言实现无头单链表详解
    目录链表的结构体描述(节点)再定义一个结构体(链表) 断言处理 & 判空处理创建链表创建节点头插法打印链表尾插法 指定位置插入 头删法尾删法&n...
    99+
    2022-11-13
  • c语言哈希链表如何建立
    在C语言中,可以通过结构体和指针来实现哈希链表的建立。首先,定义一个哈希链表的节点结构体,包括键值对的数据和指向下一个节点的指针:`...
    99+
    2023-08-25
    c语言
  • c语言单链表如何创建
    创建单链表的基本思路如下:1. 定义一个结构体用来表示链表中的节点,结构体中包含一个数据域用来存储节点的值,还包含一个指针域用来指向...
    99+
    2023-08-25
    c语言
  • C语言中单链表如何实现
    这篇文章主要介绍“C语言中单链表如何实现”,在日常操作中,相信很多人在C语言中单链表如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言中单链表如何实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-04
  • C语言如何建立动态链表问题
    目录C语言建立动态链表静态链表和动态链表的区别静态链表和动态链表的区别一、静态链表二、动态链表总结C语言建立动态链表 所谓建立动态链表是指在程序执行过程中从无到有地建立起一个链表,即...
    99+
    2022-12-23
    C语言动态链表 建立动态链表 C语言建立动态链表
  • C语言如何实现单链表操作
    本篇内容介绍了“C语言如何实现单链表操作”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 链表的概念及结构概念:链表是一种物理存储结构上非连...
    99+
    2023-06-29
  • C语言实现无头单向链表的示例代码
    目录一、易错的接口实现 1.1 新节点开辟函数 1.2 尾插 1.3 尾删 二、常见简单接口 2.1 打印链表 2.2 节点计数器 2.3 判断是否为空链表 2.4 通过值查找节点 ...
    99+
    2022-11-12
  • C语言如何实现带头双向循环链表
    这篇文章主要介绍了C语言如何实现带头双向循环链表,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言在实际生活中最常用的就是这两种链表。无头单向非循环链表。和带头双向循环链表。...
    99+
    2023-06-29
  • c语言链表如何实现
    这篇“c语言链表如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“c语言链表如何实现”文章吧。在计算机领域离不开算法和数...
    99+
    2023-06-19
  • ​​​​​​​C语言实现单链表基本操作方法
    目录存储结构基本功能头插法创建单链表尾插法创建单链表获取指定位置的元素在指定位置插入元素删除指定位置的元素获取单链表的长度合并两个非递减的单链表晴链表遍历打印单链表附上完整代码存储结...
    99+
    2022-11-13
  • 一文弄懂C语言如何实现单链表
    目录一、单链表与顺序表的区别:一、顺序表:二、链表二、关于链表中的一些函数接口的作用及实现1、头文件里的结构体和函数声明等等2、创建接口空间3.尾插尾删4、头插头删 5、单...
    99+
    2022-11-12
  • C语言实现单链表的快速排序算法
    目录背景设计思路算法主要步骤快速排序算法实现整个程序源代码测试案例总结背景 传统QuickSort算法最大不足之处在于,由于其基于可索引存储结构设计(一般为数组或索引表),因而无法用...
    99+
    2022-11-13
  • C语言之实现单链表指定结点的插入方式
    目录单链表指定结点的插入链表之在指定结点前面或后面插入新的结点单链表指定结点的插入 #include <bits/stdc++.h> using namespace st...
    99+
    2022-11-13
  • C语言详解如何实现带头双向循环链表
    目录创建链表存储结构创建结点链表的初始化双向链表的打印双向链表尾插双向链表尾删双向链表头插双向链表头删双向链表查找双向链表pos前插入结点双向链表删除pos位置的结点双向链表的销毁顺...
    99+
    2022-11-13
  • C语言如何实现双向链表
    本篇内容介绍了“C语言如何实现双向链表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!双向链表的基本操作    ...
    99+
    2023-06-16
  • C语言如何实现动态链表
    今天小编给大家分享一下C语言如何实现动态链表的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。链表是一种物理存储单元上非连续、非...
    99+
    2023-06-30
  • C语言中单链表(不带头结点)基本操作的实现详解
    目录一、单链表的概念二、单链表的基本操作1.创建单个结点2.创建具有n个结点的链表3.打印单链表4.尾插5.尾删6.头插7.头删8.查找某个结点9.在某个结点后面插入10.在某个结点...
    99+
    2022-11-16
    C语言单链表操作 C语言单链表
  • C语言中单链表如何实现图书管理系统
    小编给大家分享一下C语言中单链表如何实现图书管理系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下单链表实现的图书管理系统相比于结构体实现的管理系统,...
    99+
    2023-06-29
  • C语言中如何实现单链表删除指定结点
    目录单链表删除指定结点链表的删除结点(各种方法)链表中删除第i个结点删除与链表中与a相同的结点删除链表中重复元素单链表删除指定结点 在单链表中删除指定的结点。这里单链表是用尾插法建立...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作