数据结构-线性表

来源:互联网 发布:linux怎样启动tomcat 编辑:程序博客网 时间:2024/06/16 14:39

1.基本概念

线性表:零个或者多个数据元素的有限序列。(前驱元素、后驱元素和线性表长度)

数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。(记录)

例如 畜类 狗 鸡 鸭 都是数据元素。

ps:复杂的线性表的数据元素可以由多个数据项组成。

2.线性表的抽象数据类型

ADT 线性表(list)

Data

Operation

InitList(*L) ListEmpty(L)等

Datatype的意思

DataType顾名思义 就是数据类型数据结构用的不算是C语言 而是类C那么要使用C语言正确编译的话 我们就需要把这些映射成C语言的相应类型这里DataType就映射成int整形代码为typedef DataType int;就是把DataType和int等价在后面的DataType a;也就是相当于int a;

3. 线性表的顺序储存结构

用一段地址连续的储存单元依次存储线性表的数据元素。如 c语言的一维数组

结构代码

#define MAXSIZE 20

typedef int ElemType;

Typedef Struct

{

ElemType data[MAXSIZE];

int length;

}SqList;

    地址计算方法 

4 顺序储存结构的插入与删除

获取操作 如 获取线性表中的第i个元素,只需要返回数组第i-1下标的值即可。

插入操作 

(1)插入不合理抛出异常

(2)从最后一个元素向前遍历到第i个位置,分别让它们都向后移动一个位置

(3)把元素插入到第i个位置

(4)线性表长度加1

删除操作

(1)删除不合理跑出异常

(2)取出删除元素

(3)从删除元素位置开始遍历到最后一个元素位置,分别让它们向前移动一个位置

(4)线性表长度减1

5 线性表的链式储存结构

数据域 指针、指针域 节点 链表 单链表 头指针

结构指针

typedef struct Node

{

ElemType data;

struct Node *next;

}Node;

typedef struct Node *LinkList;

单链表的读取

单链表的插入与删除

单链表的整表创建于删除

静态表

循环表

双向表


1 0
原创粉丝点击