Chapter04_串_数据结构(C语言版)_严蔚敏_配套课件
- 格式:pdf
- 大小:322.92 KB
- 文档页数:88
数据结构严蔚敏ppt课件数据结构(严蔚敏)版●资料上传者:安徽大学研究生●资料使用范围:各大学考研及本科教学●欢迎报考安徽大学研究生●“星光考研书屋”祝您学习愉快[学习目标]掌握线性表的顺序存储结构和抽象数据类型中定义的每一种操作的含义,在顺序存储方式下每一种操作的具体实现和相应的时间复杂度;掌握链接存储的概念,线性表的单、双链接存储结构,对它们进行插入和删除结点的方法,循环单、双链表和带表头附加结点的单、双链表的结构和操作特点;掌握每一种线性表操作在由动态结点构成的单链表上具体实现的算法以及相应的时间复杂度。
2第2章线性表线性结构是最常用、最简单的一种数据结构。
而线性表是一种典型的线性结构。
其基本特点是线性表中的数据元素是有序且是有限的。
在这种结构中:① 存在一个唯一的被称为“第一个”的数据元素;② 存在一个唯一的被称为“最后一个”的数据元素;③ 除第一个元素外,每个元素均有唯一一个直接前驱;④ 除最后一个元素外,每个元素均有唯一一个直接后继。
32.1 线性表的逻辑结构线性表(Linear List ) :是由n(n ≧0)个数据元素(结点)a 1,a 2,…a n 组成的有限序列。
该序列中的所有结点具有相同的数据类型。
其中数据元素的个数n 称为线性表的长度。
当n=0时,称为空表。
当n>0时,将非空的线性表记作: (a 1,a 2,…a n ) a 1称为线性表的第一个(首)结点,a n 称为线性表的最后一个(尾)结点。
2.1.1 线性表的定义4a1,a2,…a i-1都是a i(2≦i≦n)的前驱,其中a i-1是a i的直接前驱;a i+1,a i+2,…a n都是a i(1≦i ≦n-1)的后继,其中a i+1是a i 的直接后继。
2.1.2线性表的逻辑结构线性表中的数据元素a i所代表的具体含义随具体应用的不同而不同,在线性表的定义中,只不过是一个抽象的表示符号。
◆线性表中的结点可以是单值元素(每个元素只有一个数据项) 。
第4章串在非数值处理、事务处理等问题常涉及到一系列的字符操作。
计算机的硬件结构主要是反映数值计算的要求,因此,字符串的处理比具体数值处理复杂。
本章讨论串的存储结构及几种基本的处理。
4.1 串类型的定义一、串的基本概念串(字符串):是零个或多个字符组成的有限序列。
记作:S=‘a1a2…a n’,其中S是串名,a i(1≤i≤n)可以是数字、字母或其他字符。
串值:单引号括起来的字符序列。
【注意】单引号本身不属于串,它的作用只是为了避免与变量名或数的常量混淆而已。
串长:串中所包含的字符个数。
空串(空的字符串):长度为零的串,它不包含任何字符。
空格串(空白串):构成串的所有字符都是空格的串。
【注意】空串和空白串的不同,一个是不含任何字符,一个是含字符,但只含空格字符。
子串:串中任意个连续字符组成的子序列称为该串的子串,包含子串的串相应地称为主串。
子串的序号:将子串在主串中首次出现时的该子串的首字符对应在主串中的序号,称为子串在主串中的序号(或位置)。
例如,设有串A和B分别是:A=‘这是不是字符串’,B=‘是’,则B是A的子串,A为主串。
B在A中出现了两次,其中首次出现所对应的主串位置是2。
因此,称B在A 中的序号为2。
【注意】特别地,空串是任意串的子串,任意串是其自身的子串。
串相等:两个串的长度相等,且各个对应位置的字符都相同(串值相等)。
通常在程序中使用的串可分为两种:①串常量,和整常数、实常数一样,在程序中只能被引用但不能改变其值,即只能读不能写。
②串变量,和其他类型的变量一样,其值是可以改变。
二、串的抽象数据类型定义4.2 串的表示和实现串是一种特殊的线性表,其存储表示和线性表类似,但又不完全相同。
串的存储方式取决于将要对串所进行的操作。
串在计算机中有3种表示方式:定长顺序存储表示:将串定义成字符数组,利用串名可以直接访问串值。
用这种表示方式,串的存储空间在编译时确定,其大小不能改变。
堆分配存储方式:仍然用一组地址连续的存储单元来依次存储串中的字符序列,但串的存储空间是在程序运行时根据串的实际长度动态分配的。