头插法和尾插法建立带头节点的单链表
有两种方法建立单链表,尾插法和头插法,他们的区别是:头插法是按照输入元素倒序建立,为尾插法为顺序插入,并且多一个尾节点,我们一般使用尾插法。
一.头插法
代码为:
pCurr -> next = pHead -> next;
pHead -> next = pCurr;
二.尾插法
pTail -> next = pCurr;
pTail = pCurr;
完整代码如下:
//头插法和尾插法建立单链表及
#include <stdio.h>
#include <stdlib.h>
struct Node {int data;Node* next;
};
void tailInvert(int* data);
void headInvert(int* data);
int main() {int data[5] = {1, 2, 3, 4, 5};tailInvert(data);printf("\n");headInvert(data); }void tailInvert(int* data) {Node* pHead = (Node*)malloc(sizeof(Node));Node* pCurr = NULL;Node* pTail = pHead;for(int i = 0; i < 5; ++i) {pCurr = (Node*)malloc(sizeof(Node));pCurr -> data = data[i];pTail -> next = pCurr;pTail = pCurr;}pTail -> next = NULL;printf("尾插法:\n");for(int j = 0; j < 5; ++j) {printf("%d\t", pHead -> next -> data);pHead = pHead -> next;}
}void headInvert(int* data)
{Node* pHead = (Node*)malloc(sizeof(Node));pHead -> next = NULL;Node* pCurr = NULL;for(int i = 0; i < 5; ++i) {pCurr = (Node*)malloc(sizeof(Node));pCurr -> next = pHead -> next; //巧妙 pCurr -> data = data[i];pHead ->next = pCurr;}printf("头插法:\n");for(int j = 0; j < 5; ++j) {printf("%d\t", pHead -> next -> data);pHead = pHead -> next;}
}
头插法和尾插法建立带头节点的单链表相关推荐
- 数据结构c/c++ 头插法尾插法建立带头结点的单链表,以数组创建带头结点的单链表和不带头结点的单链表,输出打印单链表
// // Created by 焦娇 on 2021/9/17. //#ifndef CHAPTER2_LINELINK_LLK_H #define CHAPTER2_LINELINK_LLK_H# ...
- 采用头插法和尾插法建立单链表
面说一下如果用C语言建立单链表,分为头插法和尾插法两种. 采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后 ...
- 用头插法和尾插法建立单链表(带头结点)
尾插法建立单链表 LinkList List_TailInsert(LinkList &L) {int x;L=(LinkList)malloc(sizeof(LNode));LNode *s ...
- 头插法和尾插法建立单链表
在进行单链表的基本运算之前必须先建立单链表,建立单链表的常用方法有两种:头插法建表和尾插法建表 头插法建表,从一个空表开始,读取字符数组a中的字符,生成新节点,将读取的数据存放到新节点的数据域中,然后 ...
- 单链表的建立(C语言):头插法和尾插法建立单链表
采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后,如图2-4所示. 图2-4 头插法建立单链表 头插法建 ...
- 头插法和尾插法建立链表
#include "stdio.h" #include "stdlib.h" typedef struct List { int data; struct Li ...
- 头插法和尾插法建立单链表详解与实现
写在前面:本文使用C语言和C++引用,学C和C++的同学都是可以看懂的,C++毕竟向下兼容C.很详细,一篇能搞懂代码和原理. 先来了解几个简单概念 单链表就是线性表的链式存储: 头结点:单链表在第一个 ...
- 数据结构—分别用头插法和尾插法建立单链表
#include <iostream> using namespace std; typedef struct LNode{int data;struct LNode *next; }LN ...
- c语言 链表建立头插法尾插法,单链表的创建(头插法和尾插法)
单链表的创建分为头插法和尾插法,头插法是不断地向头结点插入新的结点.这样会使你所插入的结点值呈现逆序,所以头插法也可以实现单链表的逆置.尾插法是不断地向插入的新元素之后再插入新的元素.需要注意的是头插 ...
最新文章
- 怎样在表格中选出同一类_3分钟教会你如何将不同表格中的数据关联在一起
- PythonGUI开发:59行代码开发小型商店添加系统
- hibernate xxx is not mapped 错误原因及解决方法
- VTK:图片之ImageDifference
- 使用聚合的方式实现静态代理
- 使用pandas时遇到ValueError: numpy.dtype has the wrong size, try recompiling
- php获取对象属性值
- jsp和servlet面试题
- vue导出自定义的excel表格
- win10安装完ubuntu后win10时间改变了 最简单调整方式
- EMC Isilon存储服务器误删除虚拟机恢复过程
- 手机浏览器能上网微信无法连接服务器,手机打不开微信的网页怎么办?手机打不开微信网页的原因和解决方法...
- potato土豆登录不了_土豆@mz123789【电子竞技赛吧】
- 台式计算机总是重启,台式电脑总是自动重启,查不出问题!
- chrome浏览器不能显示本地图片办法解决(图片预览)
- 形参和实参的定义与区别
- Java学到什么程度才能叫精通?
- excel制作动态数据分析报表
- 异形结构的纳米材料:纳米团簇/纳米丝/纳米棒/纳米管的相关研究
- 商用设计素材库,设计师必备。
热门文章
- Jieba:高频词提取
- 拉一塔准则python_学习笔记之Python实现纵横向拉开档次法-研究方法概述
- vue使用pdf.js实现移动端在线PDF文件预览
- DataScienceML:金融科技领域之风控的简介、类别、应用流程(定义目标变量→特征构建思路等)、案例集锦之详细攻略
- 安凯微在科创板IPO过会:计划募资10亿元,小米等为其股东
- 从母语学习规律中推断出英语学习的规律
- SAP ABAP 四舍五入函数
- Centos中安装docker并查看拉取镜像的位置
- 基于Qt的图像处理技术和算法
- ajp_read_header: ajp_ilink_receive failed