上一节我们介绍了线性表的顺序存储实现,这一节阐述线性表的链式存储实现。
上一节我们介绍了线性表的概念,这一节阐述线性表的顺序存储实现。 顺序表 顺序表最大的特点就是:元素在内存中存储的位置是连续的,因此只要已知首地址就可以通过首地址 + 偏移量访问到顺序表中的元素。 但也因为这个特点,顺序表的插入和删除操作会比较麻烦,因为插入和删除操作会导致后面所有的元素需要移动,而移动元素的时间复杂度是 O(n)。 由于高级语言中的数组就是顺序表的实现,因此顺序表的实现通常都非常简单。 一个顺序表 Header 可定义结构如下: 1type SeqList struct { 2 data []interface{} 3 length int 4} 其中 data 是一个数组,用来存储顺序表中的元素,length 是顺...
线性表是最简单,最常用,也是最需要熟练掌握的数据结构,没有之一。后续的数据结构都要在线性表基础上构建。
在实际开始讨论数据结构与算法之前,需要先讨论一些基础知识,这些基础知识要么很重要,要么是看上去不太重要容易被忽略的。
可以不考研,但不能不学 408。 —— 我自己
我不想在这里再去重申那个经典的 Why,What,How 灵魂拷问,408 的这四门课程在 IT 研究来看不可谓不重要,它不但仅仅是考研的头秃专业课,更是从事 IT 工作必备的技能。我并不打算在国内考研,但这四门课程是不能不学的。
在 408 四门课程之中,绝大多数院校的培养方案都将数据结构作为第一门课程,因为在数据结构课程之中打下的编程能力的基础为后续课程做了良好的铺垫,并且后续的课程多少都会用到数据结构和算法的思想,有助于后续课程的展开和快速理解。