C语言链表2(创建新的节点以及尾插法)
上次我们学到:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct Node
{int a;struct Node*next;
};
struct Node*head = NULL;//全局变量的声明,方便调用
struct Node*end = NULL;
首先是创建一个函数来创建新的节点:
struct Node* creatnewNode()
{
struct Node*p = (struct Node*)malloc(sizeof(struct Node));
p->data = 0;
p->next = NULL;
return p;
}
接下来是采用尾插法接入节点:分为两种情况,1如果链表为空,则就令头为插入的节点,同时这个插入的节点也为尾巴。
//struct Node* temp = creatnewNode();
if(head == NULL)
{
head = temp;
tail = temp;
}
2 若链表不为空,则尾节点的的指针指向要插入的节点,也就是要插入的节点插在尾巴的后面,同时这时这个插入的节点也就变成了尾巴。
tail->next = temp;
tail = temp;
下面是完整代码(仅能实现尾插法)
#include<stdio.h>
#include<stdlib.h>
struct Node
{int data;struct node* next;
};
struct Node*head = NULL;
struct Node*tail = NULL;
struct Node* creatnewNode()//创建新节点
{struct Node* p=(struct Node*)malloc(sizeof(struct Node));p->next=NULL;p->data=0;return p;
}
void Addnodefromtail(int a)//尾插法
{struct Node* temp = creatnewNode();temp->data = a;if(head == NULL){head = temp;tail = temp;}tail->next = temp;tail = temp;
}
void printNode()
{if(head == NULL){printf("error\n");}struct Node*p = head;while(p!=NULL){printf("%d ",p->data);p = p->next;}
}
int main()
{int i;for(i = 0;i<5;i++){Addnodefromtail(i);}printNode();return 0;
}
今天就学到这儿,关于链表的后续操作,博主会更新滴。
C语言链表2(创建新的节点以及尾插法)相关推荐
- 图解java链表基本操作篇一(头插法和尾插法)
整体代码结构定义 public class LinkedListTest <E>{} 节点数据存储定义 这样子定义只是为了可以方便地创建双向链表,循环链表,不影响单链表的创建,在创建链表的 ...
- c语言链表增加新节点,C语言 链表的创建,以及节点的增加和删除
第一次写博客,如有错误还请指正---- 今天下午倒腾了一下的链表,感觉链表就是一个小型的,用于简单的小程序的用户信息存储和管理还是很方便的. 下面为方便起见,以学生信息为例: 链表采用了动态分配的办法 ...
- 头插法(逆序)和尾插法(顺序)实现单链表的创建与排序
链表是线性表的一种表示形式,和线性表的另一种表达形式--数组不同.在链表中,没有固定长度的设定,表中节点是彼此相连的,表中的每一个节点链接下一个节点(即后继),链表头(Head)指向链表的第一个节点. ...
- 不带头结点的单链表的创建(头插法和尾插法)
1.用头插法建立不带头结点的单链表 #include<iostream> using namespace std;//单链表的结构体 typedef struct Node {int da ...
- (最详细)c语言尾插法头插法代码讲解
1.尾插法 尾插法 头指针和尾指针都指向头结点,然后往里边插入元素, 每插入一个元素尾指针就后移一下 其中如下图所示 尾插法的核心代码是: pointer->next = s; //pointe ...
- 单向链表 头插法尾插法
链表 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个结点里存到下一个结点的地址.链表在存储数据结构的内存中有两块区域.一块区域用来存 ...
- Java单链表插入基本操作(头插法、尾插法、任意位置插入法)
一.单链表的头插法 1.创建一个NODE节点的类,写一个public void addFirst()的函数来实现链表的头部插入,最后写一个public void display()的函数实现链表的打 ...
- 翻转链表II[翻转链表3种方式+dummyHead/头插法/尾插法]
翻转链表 前言 一.翻转链表中间部分 二.dummyHead&头插法&尾插法 1.一次扫描 + 翻转链表(另一次扫描) 2.一次扫描&头插法&尾插法(进阶) 总结 参考 ...
- C语言的双向链表头插法和尾插法,指定节点删除
文章目录 前言 头插法 尾插法 删除节点 测试代码如下 前言 双向链表和单链表的唯一区别就是多个一个指针域而已,该指针域可以访问链表的上一个节点. 关于构造双向链表的过程我们常见的有两种方法,和单链表 ...
最新文章
- PADS 9.3安装教程
- WS-Eventing、WS-Transfer Web服务标准
- jdk1.8版本已经不包含jdbc.odbc连接
- FORM级别和数据库级别的Trace
- mkcramfs 命令学习
- 关于eclipse的一些简单配置
- 微信开发实现一键拨号出现屏蔽问题的解决方案
- 【BZOJ1406】【codevs2478】密码箱,数论练习
- Android自定义view之基础知识
- 你知道Arrays.asList 有坑吗?千万别踩啊!
- 实操教程 | 深度学习pytorch训练代码模板(个人习惯)
- 【干货】js 数组操作合集(前端自我修养)
- 移动通讯市场发展概况及预测
- 毕设项目 - 基于SSM的旅游资源网站(含源码+论文)
- 计算机信息技术知识点思维导图,思维导图信息技术的学习方法
- php短视频源码,流式布局(代码)
- exfat默认配置大小_我的空间哪里去了?注意exfat格式设置的陷阱
- 一文详解超纤皮和真皮的区别,别再傻傻分不清了
- Word自动生成目录页码靠右对齐
- 个人或团队项目怎么起包名
热门文章
- java eventbus_Guava学习笔记:EventBus
- [渝粤教育] 西南交通大学 体育健康课程Ⅰ—太极功夫 参考 资料
- 【高项】人力资源管理(ITTO)
- Wipro Limited任命Rishad Premji为执行董事长
- 苹果全球销量超越小米重回第二,荣耀回归国内手机市场第一梯队
- 使用cookie实现简易的登录计时
- Java实现多图片和文字编辑成一张图片
- 阿里云服务器ECS Ubuntu16.04-64-bit学习之一:配置桌面(进阶-脚本一键执行)
- RPA机器人流程自动化
- Java继承与多态(抽象类和接口练习)定义抽象类Bank,它包含oneyearRate(一年定期利率)oneyearNationalbebt(一年国债利率)和CurrentDepositRate(按年