第一章数据结构基础 要想成为一名真正的程序员,数据结构是必备的基础知识。 只有学过数据结构,才能真正有效规范地组织程序中的数据。而 在实际编程中,有些问题必须通过特定的数据结构才能更方便地 解决。因此数据结构是每一个搞计算机的人都应当十分掌握的知 识。 要想全面而系统地学习数据结构的知识,这里的介绍显然是 不充分的,建议应当找来专门介绍数据结构的书籍学习。如果你 只想掌握一般层次的知识,或是已经学过数据结构,只是为了深 入地学习本书后续的内容而进行回顾和复习,那么本章的介绍是 足够的
第一章 数据结构基础 要想成为一名真正的程序员,数据结构是必备的基础知识。 只有学过数据结构,才能真正有效规范地组织程序中的数据。而 在实际编程中,有些问题必须通过特定的数据结构才能更方便地 解决。因此数据结构是每一个搞计算机的人都应当十分掌握的知 识。 要想全面而系统地学习数据结构的知识,这里的介绍显然是 不充分的,建议应当找来专门介绍数据结构的书籍学习。如果你 只想掌握一般层次的知识,或是已经学过数据结构,只是为了深 入地学习本书后续的内容而进行回顾和复习,那么本章的介绍是 足够的
11什么是数据结构 数据结构就是指计算机内部数据的组织形式和存储方法。 我们再熟悉不过的数组就是一种简单而典型的线性数据结构类型 。本章中将更加具体地介绍一些常用的数据结构,主要包括:线 性结构、树、图。 线性结构是最常用,也是最简单的一种数据结构。还有 种常用的数据结构叫做图状结构,简称图结构。图结构中数据元 素之间存在着“多对多”的关系,因此图结构较树结构,线性结 构要复杂得多。在处理一些复杂的问题中,图结构往往能派上用 场
1.1 什么是数据结构 数据结构就是指计算机内部数据的组织形式和存储方法。 我们再熟悉不过的数组就是一种简单而典型的线性数据结构类型 。本章中将更加具体地介绍一些常用的数据结构,主要包括:线 性结构、树、图。 线性结构是最常用,也是最简单的一种数据结构。还有一 种常用的数据结构叫做图状结构,简称图结构。图结构中数据元 素之间存在着“多对多”的关系,因此图结构较树结构,线性结 构要复杂得多。在处理一些复杂的问题中,图结构往往能派上用 场
12顺序表 在计算机内部存储一张线性表(线性结构的数表), 最为方便简单的就是用一组连续地址的内存单元来存储整张 线性表。这种存储结构称为顺序存储结构,这种存储结构下 的线性表就叫做顺序表。如图1-1所示,就是顺序表的示意 000H 0001H+ 内存空间地址连 有唯一的4 续,数据顺序存储← 名称标识4 图1-1顺序表的示意4
1.2 顺序表 在计算机内部存储一张线性表(线性结构的数表), 最为方便简单的就是用一组连续地址的内存单元来存储整张 线性表。这种存储结构称为顺序存储结构,这种存储结构下 的线性表就叫做顺序表。如图1-1所示,就是顺序表的示意
121顺序表的定义 定义一张顺序表也就是在内存中开辟一段连续的存储 空间,并给它一个名字来标识。只有定义了一个顺序表, 才能利用该顺序表存放数据元素,也才能对该顺序表进行 各种操作。 有两种定义顺序表的方法,一是静态地定义一张顺序 表;二是动态生成一张顺序表
1.2.1 顺序表的定义 定义一张顺序表也就是在内存中开辟一段连续的存储 空间,并给它一个名字来标识。只有定义了一个顺序表, 才能利用该顺序表存放数据元素,也才能对该顺序表进行 各种操作。 有两种定义顺序表的方法,一是静态地定义一张顺序 表;二是动态生成一张顺序表
122向顺序表中插入元素 下面介绍如何在长度为n的顺序表中的第个位置插入新元素 item。 所谓在长度为n的顺序表中的第价个位置插入新元素是指在顺序 表第1个数据元素和第个数据元素之间插入一个新元素item 函数 nserelem的作用是在顺序表 Sqlist中第个位置上插入元 素item,并将顺序表长度加1。其实现过程如下。 (1)判断插入元素的位置是否合法。一个长度为n的顺序表的 可能插入元素的位置是1~n+1,因此如果1或者n+1或者表满 n== Maxsize(因为表的内存大小固定不变)的插入都是非法的。 (2)将顺序表的1以后的元素顺序后移一个元素的位置,即 将顺序表从第个元素到第n个元素顺序后移一个元素的位置。 (3)在表的第个位置(下标为1)上插入元素item,并将表 长加
1.2.2 向顺序表中插入元素 下面介绍如何在长度为n的顺序表中的第i个位置插入新元素 item。 所谓在长度为n的顺序表中的第i个位置插入新元素是指在顺序 表第i-1个数据元素和第i个数据元素之间插入一个新元素item。 函数InserElem的作用是在顺序表Sqlist中第i个位置上插入元 素item,并将顺序表长度加1。其实现过程如下。 (1)判断插入元素的位置是否合法。一个长度为n的顺序表的 可能插入元素的位置是1~n+1,因此如果i<1或者i>n+1或者表满 n==MaxSize(因为表的内存大小固定不变)的插入都是非法的。 (2)将顺序表的i-1以后的元素顺序后移一个元素的位置,即 :将顺序表从第i个元素到第n个元素顺序后移一个元素的位置。 (3)在表的第i个位置(下标为i-1)上插入元素item,并将表 长加1