带头结点的单链表的创建(头插法和尾插法)
带头结点的单链表的创建(头插法和尾插法)
#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
请按任意键继续. . .
带头结点的单链表的创建(头插法和尾插法)相关推荐
- C语言-链表的创建头插法和尾插法(有无头节点)
文章目录 结构声明 1 头插法(有头节点) 2 头插法(无头节点) 3 尾插法(有头节点) 4 尾插法(无头节点) 结构声明 typedef int ElementType;typedef struc ...
- 采用头插法和尾插法建立单链表
面说一下如果用C语言建立单链表,分为头插法和尾插法两种. 采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后 ...
- C语言的双向链表头插法和尾插法,指定节点删除
文章目录 前言 头插法 尾插法 删除节点 测试代码如下 前言 双向链表和单链表的唯一区别就是多个一个指针域而已,该指针域可以访问链表的上一个节点. 关于构造双向链表的过程我们常见的有两种方法,和单链表 ...
- 不带头结点的单链表的创建(头插法和尾插法)
1.用头插法建立不带头结点的单链表 #include<iostream> using namespace std;//单链表的结构体 typedef struct Node {int da ...
- 头插法和尾插法的详细区别
浅析线性表(链表)的头插法和尾插法的区别及优缺点 线性表作为数据结构中比较重要的一种,具有操作效率高.内存利用率高.结构简单.使用方便等特点,今天我们一起交流一下单向线性表的头插法和尾插法的区别及优缺 ...
- c语言 链表建立头插法尾插法,单链表的创建(头插法和尾插法)
单链表的创建分为头插法和尾插法,头插法是不断地向头结点插入新的结点.这样会使你所插入的结点值呈现逆序,所以头插法也可以实现单链表的逆置.尾插法是不断地向插入的新元素之后再插入新的元素.需要注意的是头插 ...
- 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表
http://blog.csdn.net/abclixu123/article/details/8210109 链表也是线性表的一种,与顺序表不同的是,它在内存中不是连续存放的.在C语言中,链表是通过 ...
- 头插法和尾插法创建链表(有无头结点)
头插法和尾插法创建链表(有无头结点) 文章目录 头插法和尾插法创建链表(有无头结点) 1 头插法 1.1头插法建表规则: 1.2 头插法建表代码实现 2 尾插法 2.1 尾插法建表规则: 2.2 尾插 ...
- 头插法和尾插法建立带头节点的单链表
有两种方法建立单链表,尾插法和头插法,他们的区别是:头插法是按照输入元素倒序建立,为尾插法为顺序插入,并且多一个尾节点,我们一般使用尾插法. 一.头插法 代码为: pCurr -> next = ...
- 单链表的头插法和尾插法c语言实现
/*单链表的头插法和尾插法c语言实现*/ #include <stdio.h> #include <stdlib.h> #include <string.h> #d ...
最新文章
- 基于MMSeg算法的中文分词类库
- 黑客都用Python?学习Python的4个理由!
- 分布式系统之通信技术学习
- 【手势交互】9. PS Move
- 二分查找基础概念与经典题目(Leetcode题解-Python语言)二分数值型
- hypixel服务器免费低延迟ip,国服hypixel服务器ip
- mpython_mPython官方版
- mysql 进阶到高级_MySQL 高级(进阶) SQL 语句精讲(一)
- impala 本年格式化时间_【DataPM】Impala里的日期函数
- 8.Kubernetes Service(服务)
- 苹果 AppStore 财年和账单那些趣事
- Detours使用方法,简单明了
- Flixel Dame Tank学习一:半成品坦克大战
- IDEA环境下模块的右下角蓝色小方块缺失的解决方法,pom文件未识别
- 工厂都离不开的“人机料法环”
- mysql2005编辑器用法,文本编辑器 - Visual Studio的隐藏功能(2005-2010)?
- 【云原生】还不会使用linux?快看这里,在window快速安装centos系统
- Vue脚手架运行报错-4058
- 神经网络的基本原理,神经网络算法三大类
- 音频格式(一)PCM和WAV
热门文章
- Ubuntu18.04笔记本触控板失效解决办法
- 原生小说APP源码,可二次开发,小说阅读,四端互通:android端,ios端,h5端,公众号端
- VBlog 的代码结构, 使用 vue-element, vue-vant 组件开发的纯前端博客
- 【Python练习】乌龟吃鱼小游戏
- python乌龟吃鱼小游戏(类和对象及Easygui应用)
- LSB算法分析与实现
- html什么是一级标题,一级标题是什么(论文一二三级标题范本)
- 异名一文带你读懂Chrome小恐龙跑酷!
- 如何编写一份合格的架构设计文档
- 【技术贴】解决福昕阅读器pdf打印横向打印不居中,页面有空白