写这篇是为了给还在为理解链表而发愁的同学们节约时间,我在学习链表的时候也是一头雾水,尽管书上,视频里都有讲解,但是你们有没有发现都是狗屁官方语言,对帮助理解没有多大作用,许多其他的学习也类似就不说编程了,作为一名读过多年书的你是不是也这样感觉,那这次我将源代码全部写下来,注释也是用最好理解的白话写的希望能帮助到你。

#include "stdafx.h"
#include"iostream"
using namespace std;
struct Node
{
    int  data;
    Node*next;
};
  Node*Phead=NULL;//一开始没有节点 先设定一个空节点作为头节点 此头节点 数据data=NULL,next=NULL;

void Addhead(int d)//头插法
{
    Node*p=(Node*)(malloc(sizeof(Node)));
    p->data=d;
    p->next=Phead;//{ 将现有头的NULL赋值给该新申请的next,使之为空即使该数据成为尾结点(仅仅对插入的第一个数而言)},但而后插入的数据的next指向上一个数据,因为Phead值不再为NULL这也是一不小心最不容易理解的地方
    Phead=p;//将现申请的空间赋给头节点;使之下一次访问头结点从该数据开始,形成链表,即使该节点成为头结点

}
void Addtail(int d)//尾插入
{   Node*p=Phead;
while(p->next!=NULL)//寻找尾结点(尾结点的特点是next=NULL)
    {p=p->next;}
    Node*pnew=(Node*)(malloc(sizeof(Node)));//为新数据申请空间
    pnew->data=d;
    pnew->next=NULL;//使新数据成为尾结点
    p->next=pnew;//使上一个数据的next指向新数据 形成链表
}
void display()
{
  Node*p=Phead;
  while(p!=NULL)//判断节点是否为空 不是空就打印输出
    {
        cout<<p->data <<"  ";
       p=p->next;
    }

}
int main()
{
    Addhead(6);
    Addhead(5);
    Addhead(4);
    display();
    Addhead(3); 
    Addhead(2);
    Addhead(1);
    display();
    Addtail(7);
    Addtail(8);
    Addtail(9);
    display();
    system("pause");
    return 0;
}

C/C++ 链 表 头插法 尾插法相关推荐

  1. 计算机软件技术 上海电力学院,上海电力学院 计算机软件技术 实验三 用头插法和尾插法创建线性表...

    上海电力学院计算机软件技术实验三用头插法和尾插法创建线性表 #include #define MAXLEN 9 struct table {int key; int othererm; } ; typ ...

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

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

  3. java实现单链表的建立(头插法和尾插法)

    单链表 单链表(Single Linked List): 单链表是一种链式存取的数据结构,用一组地址任意(可能连续,也可能不连续)的存储单元存放线性表中的数据元素. 链表中的数据是以结点来表示的,每个 ...

  4. C语言的单链表创建:头插法/尾插法

    文章目录 前言 链表头插法 链表尾插法 源码实现 前言 接下来一段时间,将对数据结构进行复习,总的来说数据结构自大学之后忘记得有点吓人,为了防止脑容量本就小得脑袋更小,必须得持续性得温故了. 链表数据 ...

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

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

  6. 单链表头插法和尾插法

    1.头插法 头插法:每次把新节点插入到头节点之后,创建的单链表和数据输入顺序相反. 防止单链表是空的而设的. 当链表为空的时候,带头结点的头指针就指向头结点,头结点的指针域存储的数值为NULL. &l ...

  7. 线性表中的尾插法双链表的学习

    #include <stdio.h> #include <malloc.h>/*** 线性表中的尾插法双链表的学习 *//*** 人类*/ typedef struct Per ...

  8. 线性表中的尾插法单链表的学习

    #include <stdio.h> #include <malloc.h>/*** 线性表中的尾插法单链表的学习 *//*** 人类*/ typedef struct Per ...

  9. 采用头插法和尾插法建立单链表

    面说一下如果用C语言建立单链表,分为头插法和尾插法两种. 采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后 ...

  10. 头插法和尾插法的详细区别

    浅析线性表(链表)的头插法和尾插法的区别及优缺点 线性表作为数据结构中比较重要的一种,具有操作效率高.内存利用率高.结构简单.使用方便等特点,今天我们一起交流一下单向线性表的头插法和尾插法的区别及优缺 ...

最新文章

  1. nprogress.js 头部进度条使用方法
  2. boost::coroutine模块实现power的测试程序
  3. 开源特训营 - Lesson 4 - 如何运营社区
  4. js中的Promise简单总结(ES6)
  5. [C++] GCC multilib
  6. Android开发笔记(一百四十七)标签布局TabLayout
  7. 浏览网页时,手机显示手机被恶意攻击,不停震动,一直弹出应用要我下载,有没有问题?
  8. bypass最新版d盾mysql_Bypass 护卫神SQL注入防御(多姿势)
  9. 〖Demo〗-- 多级评论
  10. mysql性能剖析工具_MySQL性能剖析工具(pt-query-digest)【转】
  11. blktrace 深度了解linux系统的IO运作
  12. java三级 高级证书6_java web 学习 --第六天(Java三级考试)
  13. 计算机考研数据结构教材,2016计算机考研:数据结构参考书及复习重点
  14. 大数据工程师成长之路
  15. C++ primer 5th 读完的一点心得体会
  16. 最新EyouCMS发布工具
  17. js怎么获取扫码枪条码_如何使用JavaScript获取扫码枪扫描得到的条形码
  18. oracle联合分组查询,Oracle分组查询
  19. ios版塔防类游戏源码
  20. LaTex 编译 bib 参考文献

热门文章

  1. Hive 优化(通用版)
  2. MaxCompute SQL大数据公开数据集实战
  3. 《AV1 Bitstream Decoding Process Specification》,译名:AV1比特流及解码规范-Chapter 05-语法结构-Section 01~08
  4. 如何评估服务端压测指标
  5. 1028: 安全路径(2014年中南大学研究生复试机试题 )
  6. 云效应用交付平台 AppStack 之发布流水线
  7. MYSQL学习记录(8)
  8. AD中的机械尺寸定位的使用
  9. 键盘调节台式计算机声音,电脑键盘打字声音特效_键盘打字声音特效
  10. SecureBoost: A Lossless Federated Learning Framework论文笔记