链表新增节点之单向链表尾部插入新增节点

阅读: 评论:0

链表新增节点之单向链表尾部插入新增节点

链表新增节点之单向链表尾部插入新增节点

保持头部节点首地址不变(pHead始终指向头部节点首地址),更新尾部节点首地址(pTail)的方法

详见注释

/*
*copyright(c) 2018,HH
*All rights reserved.
*作 者:HH
*完成日期:2020年月4日
*版本号:v1.0
*
*问题描述:向单向链表尾部插入节点,新增并提供打印功能
*输入描述:学生姓名
*程序输出:;。
*备注:
下期思考如何
*1)获取链表中指定元素的位置;
*2)获取单链表中结点个数;
*3)链表插入or删除
*4)两个链表的合并
*5)链表倒置
*6)遍历链表
*/#include <stdio.h>
#include<string.h>
#include<stdlib.h>struct  Node
{char  name[32];//节点的数据成员// int  age;Node  * next;//必须要有的成员,指向下一个节点的内存地址
};int main()
{//定义两个节点指针,一个指向头结点(方便遍历),一个指向尾节点(方便插入新节点)Node  *pHead = NULL;//pHead始终指向链表的头部节点的首地址!Node  *pTail = NULL;//pTail指向链表末尾节点的首地址!(注意:而不是尾节点的指针域null)//让用户可以随时输入学生while (true){printf("请输入学生姓名,quit(退出)   print(打印):n");char  name[16] = {0};scanf("%s", name);if ( strcmp(name, "quit")==0){break;}else  if (strcmp(name, "print") == 0){//遍历链表Node  *pNode = pHead; //不改变pHead的值,保持pHead一直指向头部节点的首地址//使用pNode=while ( pNode!=NULL){printf("%s    ", pNode->name);pNode = pNode->next;//指向下一个节点}printf("n");}else{//Node  stu;//这样定义一个节点可不可以? 但是这样定义的话,stu局部变量,//离开这个}内存就释放了//分配节点堆内存,除非free,否则内存一直有效!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(重要)//sizeof用来求一个对象(类型,变量,……)所占的内存大小(以字节为单位)//malloc: void *malloc(size_t size) 分配所需的内存空间,并返回一个指向它的指针//(Node*):强制转换为//Node  *pNode = (Node*)malloc(sizeof(Node));//(重要!)pNode=0x670f40(1个节点时)/0x670f80(2个节点时)/0x670fc0(3个节点时)strcpy(pNode->name, name);pNode->next = NULL;//因为这个节点即将作为尾部节点,尾部节点的指针域始终为NULL//把节点放到链表中//判断是不是第一个节点if (pHead == NULL){//当pHead=NULL时,证明是第一个节点,因此pHead与pTail都指向这一个节点的首地址pHead = pNode;pTail = pNode;//第一个节点即是头,又是尾部}else{pTail->next = pNode;//让上一个(旧的)尾部节点 的next 指向新的尾部节点的首地址,此时pTail还未更新pTail = pNode;//让pTail始终指向最新的尾巴,即更新了程序中新的尾部节点的首地址}}}return 0;
}

本文发布于:2024-02-02 07:39:10,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170683074942335.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   链表   尾部
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23