链表(linked list)的别称
线性表的链式表示、链式存储结构、链式映像、随机存取结构的储存结构
单向链表
长相
无头链表
指向首元结点的指针叫做头指针(head pointed)
有头链表
第一个结点叫头结点(head node)
线性表的链式表示、链式存储结构、链式映像、随机存取结构的储存结构
指向首元结点的指针叫做头指针(head pointed)
第一个结点叫头结点(head node)
线性表的顺序表示、顺序存储结构、顺序映像、随机存取结构的储存结构
利用数组的连续存储空间顺序存放线性表的各个元素
a[n-1]
是 a[n]
的直接前趋,a[n+1]
是 a[n]
的直接后继。
1 | typedef struct sqList { |
1 | class LNode: |
在之前的 C 语言的学习当中,我们提到了 malloc
和 free
,这两个函数是用来动态分配内存的。
看好。
动态分配的代码是这样写的。
1 |
|
1 | typedef struct { |
我来解释一下,这个结构体声明。
length 是你实际存了多少的东西,listSize 是你目前表的最大长度。
其实,无非就是创、增、删、改、读、销。
线性表(linear list)有以下三个规则:
线性表长度为 n
,也可以直接用 xxLen
表示
当 n=0
时,就是空表
a
的下表 i 表示的是 a(i)
在线性表的位序
对于线性表存在两种输入的情况:
List L
getLength(List L)
List *L
initList(List *L)
L->
但是,我们要注意的是结构体。
举个例子
这是一个动态分配
能输入到计算机当中的并能被处理的符号的总称。
数据的基本单位,通常是以一个整体去考虑,有若干个数据项组成,又名记录。
在计算机当中,最小的储存单位是位(bit),就是二进制数的一位。将若干个位组合起来连成一个位串表示一个数据元素,通常这个位串为一个元素(element)或结点(node),有时可以看成是数据元素在计算机中的映像。
当数据元素组成各个数据项时,位串应于各个数据项的子串称为数据域(data field)
性质相同的数据元素的集合,是数据的子集。
存在一种或一种以上的特殊关系的数据元素的集合 ——Data_Structure = (D,S)
D 是数据元素的有限集,S 是 D 上关系的有限集
数据结构通常分为 4 种基本结构:
我依稀记得,小时候的我,便与计算机结下了不解之缘。那时的我,对计算机充满了好奇,总是想要探索这个神奇的小盒子里的奥秘。每次坐在电脑前,我都会瞪大眼睛,仔细观察屏幕上的每一个图标,尝试着去理解它们的功能和用途。
随着时间的推移,我逐渐对计算机产生了热爱之情。我开始沉迷于计算机的命令行,那些看似复杂的指令和代码,在我眼中却充满了魅力。我喜欢通过命令行来控制计算机,完成各种任务,那种掌控感让我兴奋不已。我开始研究各种计算机知识,从硬件到软件,从操作系统到编程语言,我都想要了解得更多。
在小学五年级的时候,我第一次接触到了 C 语言。那时的我,满怀激情地投入到学习中,想要掌握这门强大的编程语言。然而,现实却给我泼了一盆冷水。我发现,我所使用的书籍中充满了错误,这让我感到十分沮丧。最终,我无奈地选择了放弃,转而寻找其他更适合我的编程语言。
初中的时候,我接触到了 Python。与 C 语言相比,Python 的语法更加简洁易懂,让我越用越得心应手。我开始用 Python 编写各种小程序,解决实际问题。我喜欢 Python 的灵活性和强大性,它让我感受到了编程的乐趣。
在填报高考志愿时,我坚决地选择了计算机专业,不顾家人的阻拦。他们总是以我那高考成绩只够上二本末的堂哥为例子,试图说服我放弃这个选择。然而,我深知自己的兴趣和优势所在,我坚信自己能够在计算机专业中取得好成绩。最终,我成功地进入了大学,开始了我的计算机学习之旅。
在上海的校园里,我遇到了一些同样是学计算机的同学。他们中有些人总是喜欢在我面前炫耀自己的成绩和成就,搞些所谓的 “凡尔赛”。然而,我对此却甚为厌恶。我深知,真正的进步和成就不是靠炫耀得来的,而是需要脚踏实地地学习和实践。因此,我选择了超越他们,用自己的努力和成果来证明自己的实力。我坚信,只要我坚持不懈地努力下去,我一定能够在计算机领域取得属于自己的辉煌成就。
在未来的日子里,我将会继续深耕计算机领域,不断提升自己的技能和知识。无论是面对复杂的算法问题,还是应对日新月异的科技变革,我都会保持一颗求知的心,勇于挑战自我,不断超越极限。
或许,我会遇到更多的困难和挑战,但我相信,只要我坚定信念,勇往直前,就一定能够克服一切难关,实现自己的梦想。我期待着在计算机的世界里,书写属于自己的精彩篇章,用智慧和汗水创造出更多的可能。
回首过去,我为自己的选择和坚持感到自豪。展望未来,我充满了信心和期待。我相信,在不久的将来,我将成为一名优秀的计算机专业人才,为社会的进步和发展贡献自己的力量。
在浩瀚的计算机科学领域中,数据结构与算法无疑是其中最璀璨夺目的明珠。然而,想要真正掌握这门学科,却并非一撮而就的易事。它需要我们有足够的耐心,去一步步探寻每一个细节;它需要我们有足够的毅力,去克服每一个难关。因此,学习数据结构与算法,更像是一场循序渐进的修行,需要我们在实践中不断积累、反思与提升。
本书《数据结构与算法大全》正是基于这样的理念而诞生。它不仅仅是一本简单的教程,更是一部集大成之作。在编写过程中,我们深入研究了各种数据结构与算法的原理、特性及应用场景,力求将最精华、最实用的内容呈现给读者。同时,我们也参考了大量的专业书籍、学术论文以及实际项目经验,以期为读者提供一个全面、深入的学习平台。
在书中,你将看到各种经典的数据结构,如数组、链表、栈、队列、树和图等,以及与之相关的算法实现和优化方法。我们将从基础概念讲起,逐步深入到高级应用和算法设计技巧,让你能够逐步建立起自己的知识体系和技能体系。
此外,本书还注重理论与实践的结合。我们不仅在理论层面详细讲解了数据结构与算法的基本原理和特性,还通过大量的示例和案例,让读者能够更好地理解其在实际问题中的应用。相信通过本书的学习,你不仅能够掌握数据结构与算法的核心知识,还能够将其应用于实际项目中,提升自己的编程能力和问题解决能力。
最后,我要感谢所有为这本书付出努力的人,也要感谢每一位选择阅读这本书的读者。希望它能够成为你学习数据结构与算法的良师益友,陪伴你走过一段充满挑战与收获的学习旅程。愿你在这个领域中不断前行,创造出更加辉煌的未来。