数据结构前两章总结

发布于:2022-12-07 ⋅ 阅读:(396) ⋅ 点赞:(0)

        经过这几周的学习,我已经明白了数据的定义、算法、结构;以及线性表的定顺序存储结构、链式存储结构以及线性表的应用。

        数据结构:数据逻辑结构,数据存储结构,数据运算。

        逻辑结构:线性结构,非线性结构。

        存储结构:顺序结构,链式结构,索引结构,散列结构。

        数据运算:插入运算,删除运算,修改运算,查找运算,排序运算。

        常见运算:搜索运算、插入运算、删除运算、更新运算。

程序=数据结构+算法

线性表的定义

线性表的特点如下:

(1)表中元素个数有限。

(2)表中元素具有逻辑上的顺序性,表中元素有其先后次序。

(3)表中元素都是数据元素,每个元素都是单个元素。

(4)表中元素的数据类型都相同,这意味着每个元素占有相同大小的存储空间。

(5)表中元素具有抽象性,即仅讨论元素间的逻辑关系,而不考虑元素究竟表示什么内容。

线性表的基本操作

线性表的主要操作如下:

InitList(&L):初始化表。构造一个空的线性表。

Length(L):求表长。返回线性表L的长度,即L中数据元素的个数。

LocateElem(L,e):按值查找操作。在表L中查找具有给定关键字值的元素。

GetElem(L,i):按位查找操作。获取表L中第i个位置的元素的值。

ListInsert(&L,i,e):插入操作,在表L中的第i个位置上插入指定元素e。

ListDelete(&L,i,&e):删除操作,删除表L中的第i个位置的元素,并用e返回删除元素的值。

PrintList(L):输出操作。按前后顺序输出线性表L的所有元素值。

Empty(L):判空操作。若L为空表,则返回true,否则返回false。

DestroyList(&L):销毁操作。销毁线性表,并释放线性表L所占用的空间。

 顺序表的定义

线性表的顺序存储又称为顺序表。

它是用一组地址连续的存储单元依次存储线性表中的数据元素,从而使逻辑上相邻的两个元素在物理位置上也相邻。

顺序表上基本操作实现

1.插入操作

 

2.删除操作

 

3.按值查找

 

2.3线性表的链式表示

2.3.1单链表的定义

单链表的结构如图所示:

date next

其中data为数据域,存放数据元素;next为指针域,存放其后继节点的地址。

2.3.2单链表上基本操作的实现

1.采用头插法建立单链表

 

2.采用尾插法建立单链表

 

双链表

为了克服单链表的缺点,引入双链表,双链表结点中有两个指针prior和next,分别指向其前驱结点和后继结点,如图所示

1.双链表的插入操作

 

2.双链表的删除操作

 p->next=q->next;

q->next->prior=p;

free(q)

循环链表

1.循环单链表

循环单链表和单链表的区别在于,表中最后一个结点的指针不是NULL,而改为指向头结点,从而整个链表形成一个环,如图所示:

 

2.循环双链表

由循环单链表的定义不难推出循环双链表,不同的是在循环双链表中,头结点的prior指针还要指向表尾结点,如图所示:

 

本文含有隐藏内容,请 开通VIP 后查看