上次我们学到:

#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(创建新的节点以及尾插法)相关推荐

  1. 图解java链表基本操作篇一(头插法和尾插法)

    整体代码结构定义 public class LinkedListTest <E>{} 节点数据存储定义 这样子定义只是为了可以方便地创建双向链表,循环链表,不影响单链表的创建,在创建链表的 ...

  2. c语言链表增加新节点,C语言 链表的创建,以及节点的增加和删除

    第一次写博客,如有错误还请指正---- 今天下午倒腾了一下的链表,感觉链表就是一个小型的,用于简单的小程序的用户信息存储和管理还是很方便的. 下面为方便起见,以学生信息为例: 链表采用了动态分配的办法 ...

  3. 头插法(逆序)和尾插法(顺序)实现单链表的创建与排序

    链表是线性表的一种表示形式,和线性表的另一种表达形式--数组不同.在链表中,没有固定长度的设定,表中节点是彼此相连的,表中的每一个节点链接下一个节点(即后继),链表头(Head)指向链表的第一个节点. ...

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

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

  5. (最详细)c语言尾插法头插法代码讲解

    1.尾插法 尾插法 头指针和尾指针都指向头结点,然后往里边插入元素, 每插入一个元素尾指针就后移一下 其中如下图所示 尾插法的核心代码是: pointer->next = s; //pointe ...

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

    链表 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个结点里存到下一个结点的地址.链表在存储数据结构的内存中有两块区域.一块区域用来存 ...

  7. Java单链表插入基本操作(头插法、尾插法、任意位置插入法)

    一.单链表的头插法  1.创建一个NODE节点的类,写一个public void addFirst()的函数来实现链表的头部插入,最后写一个public void display()的函数实现链表的打 ...

  8. 翻转链表II[翻转链表3种方式+dummyHead/头插法/尾插法]

    翻转链表 前言 一.翻转链表中间部分 二.dummyHead&头插法&尾插法 1.一次扫描 + 翻转链表(另一次扫描) 2.一次扫描&头插法&尾插法(进阶) 总结 参考 ...

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

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

最新文章

  1. python selenium 等待页面加载完毕_Selenium_等待页面加载完毕
  2. Catterplots包,让你绘制不一样的图
  3. input禁止光标_表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  4. 带指针C语言代码,C语言指针(示例代码)
  5. float去掉小数点之后_float类型的存储方式
  6. vue2/3绑定原理比较 + vue3(ts)基础语法(ref和toRefs、watch)
  7. 手工释放linux内存——/proc/sys/vm/drop_caches
  8. 隐藏了十年的 Sudo 漏洞曝出:无需密码就能获取 root 权限
  9. Linux 操作系统开篇!
  10. SCI从入门到精通(二)——如何阅读文献
  11. 读写分离MYSQL类
  12. 自定义Promise
  13. 湖北校园天翼飞young使用路由器上网
  14. C#——已知两点及半径,求圆心坐标
  15. 商业云平台和开源云平台
  16. html li去掉前面的小黑点 项目符号
  17. 如何将pdf生成二维码链接?
  18. 雷达方程 与 根据用途演化的其它形式
  19. iexplore出错
  20. TFS映射关系出错的几种

热门文章

  1. PHP生成微信小程序带参数的二维码,可生成带参数二维码
  2. 车辆被盗后发生交通事故由谁来赔偿
  3. 2020-1-31赛
  4. STM32学习笔记(六 定时器及应用 4 光敏传感器实验 )
  5. Flink中subTask,并行度,slot你分得清吗?
  6. Xcode菜单及常用快捷键大全
  7. 20220104[动态规划 图论 建模][衢州市赛2017]环游衢州
  8. Scrapy爬取知乎Python专题精华,连答主头像都给爬下来,不放过一切
  9. 华为路由器时间同步_华为NTP配置实例
  10. 了解Robocode