链表的代码实现【数据结构F】

在这里插入图片描述
在这里插入图片描述
单链表的特点:每次结点的分配都是动态进行分配的,melloc函数实现的功能是开辟一块新的内存空间,但是返回的是一个地址,只能是地址,没有别名的事情,那就有点难办了,这是一种间接的寻址,不像数组那样,可以通过名字进行直接寻址,间接寻址就是必须找到第一个元素的位置,通过第一个元素的位置,依次寻找其余元素的位置,很是不方便的,用一个指针变量来记录开辟的那一块地址空间,没有办法,说是把他赋予一个新的别名,也就是说节点没有别名,
位序:位序在单链表当中是比较模糊的概念,位序不像是角标一样,有单独的存储空间,很方便,这个位序会根据插入元素的位置来进行变化,变化了。我们进行使用的时候就要进行遍历操作,很麻烦

为什么会提到逆序?

我们插入的时候为什么采用逆序插入的方法?
如果我们按照正常的插入,那么每一次插入都要从第1个元素开始去寻找,后面所插入的位置,也就相当于是每插入一个元素,就要对链进行一次遍历,这样增加了时间复杂度,使得效率大大降低,当我们采用逆袭插入的方法,每一次插入都可以在第1个位置插入,改变的只是头节点的指针和第1个元素的指针,前面插入的元素都依次向后移动,但是位序对于链表来说是非常模糊的概念,这里就不进行讨论

单链表的正向创建
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(图文详细)如何使用Code::Blocks运行c/cpp文件?

1) 新建源文件 打开 CodeBlocks ,在上方菜单栏中选择 “文件 --> 新建 --> 空白文件”,如下图所示: 或者直接按下 Ctrl Shift N 组合键,都会新建一个空白的源文件,如下图所示: 在空白源文件中输入…

数据结构【插入操作具体代码的实现】

插入操作具体代码的实现 单链表delete的操作:

Linux GCC简明教程(编写c语言程序)

市面上常见的 Linux 都是发行版本,典型的 Linux 发行版包含了 Linux 内核、桌面环境(例如 GNOME、KDE、Unity 等)和各种常用的必备工具(例如 Shell、gcc、VIM、Firefox 等),国内使用较多的是 CentOS、Ubunt…

Oracle中如何获取当天时间的最开始的时间和最结尾的时间:

如下: 1.获取当前时间的最开始的时间: select to_char(TRUNC(SYSDATE),yyyy-mm-dd hh24:mi:ss) from dual; 结果:2013-08-26 00:00:00 2.获取当前时间的最结尾的时间: selectTRUNC(SYSDATE)1-1/86400 FROM dual; 结果&#x…

解决VS'scanf':this function or variable may be unsafe.`(VS安全函数问题)

在 VS(Visual Studio)下编译C语言程序,如果使用了 scanf()、gets()、strcpy()、strcat() 等与字符串读取或操作有关的函数,有时候VS会报错,提示该函数可能不安全,并且建议替换为带有_s后缀的安全函数&#…

双向循环链表【数据结构】

单链表的缺点以及对单链表缺点的改进和双向链表的理解操作 双向循环列表的插入操作 线性结构是一种逻辑结构,顺序存储结构,链式存储结构

什么是编译器?(程序是怎么跑起来的)

我们平时所说的程序,是指双击后就可以直接运行的程序,这样的程序被称为可执行程序(Executable Program)。在 Windows 下,可执行程序的后缀有 .exe 和 .com(其中 .exe 比较常见);在类…

C++std命名空间和头文件详解

一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突。当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突。 例如小李和小韩都参与了一个文件管理系…

C++ new和delete

在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。如下所示: int *p (int*) malloc( sizeof(int) * 10 ); //分配10个int型的内存空间free(p); //释放内存 在cpp中,这两个函数仍然可以使用,但是C又…

Java 的内存管理机制是怎样的?

Java 的内存管理机制是怎样的?

leetcode1103. 分糖果 II 该模拟就模拟,别老想着优化

排排坐,分糖果。 我们买了一些糖果 candies,打算把它们分给排好队的 n num_people 个小朋友。 给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。 然后,我们再回到…

leetcode912. 排序数组 有范围的排序统统用桶排序

给你一个整数数组 nums&#xff0c;请你将该数组升序排列。 示例 1&#xff1a; 输入&#xff1a;nums [5,2,3,1] 输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&#xff1a;nums [5,1,1,2,0,0] 输出&#xff1a;[0,0,1,1,2,5] 提示&#xff1a; 1 < nums.len…

队列【数据结构】

注意 我们的销毁队列是否能够成功取决申请空间的方式&#xff0c;动态申请出来的空间都是可以进行销毁的&#xff0c;对于静态的话是不能直接进行销毁的 ADT 相当于是c当中的类结构&#xff0c;是处理数据时&#xff0c;提前对数据进行一定的管理操作&#xff0c;就是将某一件事…

C++继承详解

废话不多说直接上代码 class 派生类名:&#xff3b;继承方式&#xff3d; 基类名{ 派生类新增加的成员 }; 继承方式限定了基类成员在派生类中的访问权限&#xff0c;包括 public&#xff08;公有的&#xff09;、private&#xff08;私有的&#xff09;和 protected&…

串【数据结构F】

先来讲解一下串结构的概念性质的东西&#xff0c;以及我们需要注意的一些问题 串结构简单的ADT以及一些基本的操作 最小操作函数&#xff1a;就是功能已经达到了最小的功能实现了&#xff0c;不能继续执行更大的功能&#xff0c;类似于我们在家盖房子一样&#xff0c;水泥的…