带头结点的单链表的创建(头插法和尾插法)

#include <iostream>
#include <stdlib.h>
using namespace std;
typedef struct Node {int data;          //数据域struct Node*next;   //指针域
}LinkNode; //单链表节点类型//头插法建立链表,带头结点
void CreateLinkHead(LinkNode*&L,int a[],int n) {L = (LinkNode *)malloc(sizeof(LinkNode));//创建头结点L->next = NULL;   //将头结点next域置空LinkNode *s;  //创建结点sfor (int i = 0; i < n; i++) {s = (LinkNode *)malloc(sizeof(LinkNode));  //给结点s开辟空间s->data = a[i];   //给结点s的数据域赋值s->next = L->next;   //头插法进行插入L->next = s;}}//尾插法建立链表,带头结点
void CreateLinkEnd(LinkNode*&L, int a[], int n) {L = (LinkNode *)malloc(sizeof(LinkNode));//创建头结点L->next = NULL;   //将头结点next域置空LinkNode *s,*r;  //创建结点s和结点rr = L;     //开始的时候头结点和尾节点是同一个结点for (int i = 0; i < n; i++) {s = (LinkNode*)malloc(sizeof(LinkNode));  //给结点s开辟空间s->data = a[i];   //给结点s的数据域赋值r->next = s;r = s;}r->next = NULL;
}//输出看对不对
void display(LinkNode *L) {LinkNode *p = L->next;     //指向有数据的第一个结点while (p!=NULL) {cout << p->data<<" ";p = p->next;}}int main() {LinkNode *L;cout << "请输入链表的数据的个数:";int n;cin >> n;int *a = new int[n];             //用数组来接收链表的数据//注意这里不能用int *a = new int(n),会报错的哟for (int i = 0; i < n;i++) {cin >> a[i];}CreateLinkHead(L,a,n);  //调用头插法的函数,这里输出的是倒序哦cout << "输出链表数据:" << endl;display(L);cout << endl;CreateLinkEnd(L, a, n);  //调用尾插法的函数,这里输出的是正序哦cout << "输出链表数据:" << endl;display(L);cout << endl;system("pause");
}

输出结果为:

请输入链表的数据的个数:5
1 3 6 9 5
输出链表数据:
5 9 6 3 1
输出链表数据:
1 3 6 9 5
请按任意键继续. . .

带头结点的单链表的创建(头插法和尾插法)相关推荐

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

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

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

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

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

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

  4. 不带头结点的单链表的创建(头插法和尾插法)

    1.用头插法建立不带头结点的单链表 #include<iostream> using namespace std;//单链表的结构体 typedef struct Node {int da ...

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

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

  6. c语言 链表建立头插法尾插法,单链表的创建(头插法和尾插法)

    单链表的创建分为头插法和尾插法,头插法是不断地向头结点插入新的结点.这样会使你所插入的结点值呈现逆序,所以头插法也可以实现单链表的逆置.尾插法是不断地向插入的新元素之后再插入新的元素.需要注意的是头插 ...

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

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

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

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

  9. 头插法和尾插法建立带头节点的单链表

    有两种方法建立单链表,尾插法和头插法,他们的区别是:头插法是按照输入元素倒序建立,为尾插法为顺序插入,并且多一个尾节点,我们一般使用尾插法. 一.头插法 代码为: pCurr -> next = ...

  10. 单链表的头插法和尾插法c语言实现

    /*单链表的头插法和尾插法c语言实现*/ #include <stdio.h> #include <stdlib.h> #include <string.h> #d ...

最新文章

  1. 基于MMSeg算法的中文分词类库
  2. 黑客都用Python?学习Python的4个理由!
  3. 分布式系统之通信技术学习
  4. 【手势交互】9. PS Move
  5. 二分查找基础概念与经典题目(Leetcode题解-Python语言)二分数值型
  6. hypixel服务器免费低延迟ip,国服hypixel服务器ip
  7. mpython_mPython官方版
  8. mysql 进阶到高级_MySQL 高级(进阶) SQL 语句精讲(一)
  9. impala 本年格式化时间_【DataPM】Impala里的日期函数
  10. 8.Kubernetes Service(服务)
  11. 苹果 AppStore 财年和账单那些趣事
  12. Detours使用方法,简单明了
  13. Flixel Dame Tank学习一:半成品坦克大战
  14. IDEA环境下模块的右下角蓝色小方块缺失的解决方法,pom文件未识别
  15. 工厂都离不开的“人机料法环”
  16. mysql2005编辑器用法,文本编辑器 - Visual Studio的隐藏功能(2005-2010)?
  17. 【云原生】还不会使用linux?快看这里,在window快速安装centos系统
  18. Vue脚手架运行报错-4058
  19. 神经网络的基本原理,神经网络算法三大类
  20. 音频格式(一)PCM和WAV

热门文章

  1. Ubuntu18.04笔记本触控板失效解决办法
  2. 原生小说APP源码,可二次开发,小说阅读,四端互通:android端,ios端,h5端,公众号端
  3. VBlog 的代码结构, 使用 vue-element, vue-vant 组件开发的纯前端博客
  4. 【Python练习】乌龟吃鱼小游戏
  5. python乌龟吃鱼小游戏(类和对象及Easygui应用)
  6. LSB算法分析与实现
  7. html什么是一级标题,一级标题是什么(论文一二三级标题范本)
  8. 异名一文带你读懂Chrome小恐龙跑酷!
  9. 如何编写一份合格的架构设计文档
  10. 【技术贴】解决福昕阅读器pdf打印横向打印不居中,页面有空白