上次我们学到:

#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. PADS 9.3安装教程
  2. WS-Eventing、WS-Transfer Web服务标准
  3. jdk1.8版本已经不包含jdbc.odbc连接
  4. FORM级别和数据库级别的Trace
  5. mkcramfs 命令学习
  6. 关于eclipse的一些简单配置
  7. 微信开发实现一键拨号出现屏蔽问题的解决方案
  8. 【BZOJ1406】【codevs2478】密码箱,数论练习
  9. Android自定义view之基础知识
  10. 你知道Arrays.asList 有坑吗?千万别踩啊!
  11. 实操教程 | 深度学习pytorch训练代码模板(个人习惯)
  12. 【干货】js 数组操作合集(前端自我修养)
  13. 移动通讯市场发展概况及预测
  14. 毕设项目 - 基于SSM的旅游资源网站(含源码+论文)
  15. 计算机信息技术知识点思维导图,思维导图信息技术的学习方法
  16. php短视频源码,流式布局(代码)
  17. exfat默认配置大小_我的空间哪里去了?注意exfat格式设置的陷阱
  18. 一文详解超纤皮和真皮的区别,别再傻傻分不清了
  19. Word自动生成目录页码靠右对齐
  20. 个人或团队项目怎么起包名

热门文章

  1. java eventbus_Guava学习笔记:EventBus
  2. [渝粤教育] 西南交通大学 体育健康课程Ⅰ—太极功夫 参考 资料
  3. 【高项】人力资源管理(ITTO)
  4. Wipro Limited任命Rishad Premji为执行董事长
  5. 苹果全球销量超越小米重回第二,荣耀回归国内手机市场第一梯队
  6. 使用cookie实现简易的登录计时
  7. Java实现多图片和文字编辑成一张图片
  8. 阿里云服务器ECS Ubuntu16.04-64-bit学习之一:配置桌面(进阶-脚本一键执行)
  9. RPA机器人流程自动化
  10. Java继承与多态(抽象类和接口练习)定义抽象类Bank,它包含oneyearRate(一年定期利率)oneyearNationalbebt(一年国债利率)和CurrentDepositRate(按年