链表的尾插法_链表尾插法_海 月的博客-程序员宅基地

技术标签: 数据结构  

代码

void CreateListfromRear(LinkList &L)
{
	//尾指针rear 
	LinkList r; 
	//新节点指针p 
	LinkList p;
	
	//头节点初始化 
	L=new LNode;
	//头节点(L)初始化 :指向空 
	L->next=NULL;
	
	//初始,尾指针指向头节点 
	r=L;
	
	int i=0;
	while(1) 
	{
		//新节点指针负责创建新节点 
		p=new LNode;
		//新节点(p)初始化 :指向空 
		p->next=NULL;
		
        //为新节点(p)赋值
		int val;
		cin>>val;
		if(val==-1) break;
		p->data=val;
		
		//尾指针指向的节点(r->next)指向新节点(p) 
		r->next=p;
		//尾指针(r)指向新节点 (p) 
		r=p;
	}
}

头节点存在的意义:

链表的第一个节点的插入和删除操作是比较特殊的,把真实顺序下的第一个节点空着不用,把它后面的节点作为实际利用的第一个节点,这样,第一个节点的插入删除操作与其他节点统一 。

算法:

第一步

创建尾指针、新节点指针

第二步

创建头节点并将其指针域初始化为空(从堆中开辟出一块内存给头节点)

将尾指针指向头节点(尾指针存放头节点的地址)

第n步

①创建新节点并将其指针域初始化为空(从堆中开辟出一块内存给新节点)

②为新节点的数据域赋值

③把新节点插到链表末尾(尾指针指向的节点,也就是链表末尾,指向新节点,即尾指针存放的节点的指针域存放新节点的地址)

④新节点作为链表末尾(把尾指针指向新节点,即尾指针存放新节点的地址)

指针指向谁,就存放谁的地址

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43673589/article/details/118916036

智能推荐

计算机操作系统概述_访管中断和自陷-程序员宅基地

1.操作系统概述1.计算机系统计算机硬件1.计算机系统计算机硬件现代计算机系统的软硬件层次结构:其中每一层都具有一组功能并且能对层外提供相应接口。同时对层内隐藏了实现细节,对层外约束了使用规定。 应用软件: 支撑软件: 系统软件: 应用软件:其中最关键的系统软件是操作系统和语言处理程序。..._访管中断和自陷

Timer与TimerTask的真正原理-程序员宅基地

Timer和TimerTask的简单组合是多线程的嘛?不是,一个Timer内部包装了“一个Thread”和“一个Task”队列,这个队列按照一定的方式将任务排队处理,包含的线程在Timer的构造方法调用时被启动,这个Thread的run方法无限循环这个Task队列,若队列为空且没发生cancel操作,此时会一直等待,如果等待完成后,队列还是为空,则认为发生了cancel从而跳出死循环,结束任务;循...

Freescale 汇编语言源程序标准-程序员宅基地

Freescale汇编语言源程序标准 ------------------------------------------------------ 此标准包括: 行的长度限制 可接受的字符和字符格式 源程序列的分配 注释格式 ------------------------------------------------------- 行的长度: 为了便于阅读...

【Java扎马步】Mac OS X配置Java开发环境_mac os配置java环境-程序员宅基地

本篇主要介绍在Mac OS X环境下,如何配置Java的开发环境。主要是为Java程序的编译和运行做前期准备。你一定想要问,为什么要花费功夫来写一篇老生常谈的话题呢?_mac os配置java环境

线程结构体-程序员宅基地

KernelStack 记录切换线程时 0环的esp位置_线程结构

随便推点

idea解决编译时出现的未结束的字符文字等错误_idea未结束的字符文字-程序员宅基地

错误如下:F:\work\alms\alms-web\src\main\java\com\lmscn\lms\action\admin\ExamAction.javaError:(293, 74) java: 需要';'Error:(293, 81) java: 非法字符: \8451Error:(293, 83) java: 未结束的字符串文字Error:(293, 82) java:_idea未结束的字符文字

查看 cmake、gcc、g++版本 | ccmake 安装和理解 | make clean 的使用_cmake3.20支持gcc10.1.0吗_墨理学AI的博客-程序员宅基地

查看 cmake 版本查看 cmake 版本cmake -version# 输出如下cmake version 3.20.0-rc2CMake suite maintained and supported by Kitware (kitware.com/cmake).查看 gcc、g++ 版本gcc -vg++ -vCentOS 查看系统版本cat /etc/redhat-releaseCentOS Linux release 7.8.2003 (Co._cmake3.20支持gcc10.1.0吗

.net 新手上路,已疯->_<--程序员宅基地

今天.net 上机实验,已哭死在电脑前把一些能简单的全都简单处理了。1. 编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出。代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;// a,b记录长方形的长和..._.net新手上路

SparkSQL2.0扩展外部数据源原理(读取HDFS文件)-程序员宅基地

SparkSQL专门为读取HDFS上的文件开的外部数据源接口,spark-parquet、csv、json等都是这种方式。DefaultSource入口类,用来建立外部数据源连接,SparkSQL默认会找这个名字,不要改类名。基本所有接口都在这个类里private[tsfile] class DefaultSource extends FileFormat with DataS...

程序员 2014-9-28 一天的奇妙之旅_程序员的奇幻之旅-程序员宅基地

程序员 2014-9-28 一天的奇妙之旅http://forjs.org/book/xyfULqrrXg/section/ekYFnshVSl_程序员的奇幻之旅

python performance_python semopy-程序员宅基地

1.其他版本2.概述:优化需要优化的3.选择正确的数据结构4.排序5.字符串连接6.循环7.避免“点”...8.局部变量9.初始化字典元素10.import语句的消耗11.数据聚合12.少做13.Python不是C14.使用xrange来代替range15.执行时绑定函数16.性能分析代码17.性能分析18.cProfile和Hotshot模块19.Trace模块20.可视化性能评估结果这篇文章提_python semopy

推荐文章

热门文章

相关标签