Skip to content

zzzhmy/learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

这是一个数据结构代码的文件夹,里面包含一些通俗易懂的列表、栈、队列、链表、哈希表、树的描述,以及分类、排序等简单代码

一、列表 顺序存储、列表中存储的是地址,地址的长度都为4 byte.,所以列表中不要求元素类型相同,因为存的地址。长度可以无限扩。

Append:O(1)、insert:O(n)、delete:O(n)。

C的数组怎么存储:a[2]=首地址+4字节*2,查找a[2]的时间复杂度为0(1)。不同之处:

1、一个数组中元素类型一样。

2、数组长度固定。

二、栈Stack

是一个数据集合,只能在一端进行插入或者删除的列表。

后进先出(last-in,first-out,LIFO)。栈底(a[0])、栈顶a[n]。 进栈(压栈)push:li.append、 出栈pop:li.pop、 取栈顶gettop:li[-1]。

三、队列

是一个数据集合,仅允许一端插入,另一端删除。

插入的一端叫队尾rear,进队、入队。 删除的一端叫队头队首front,出队。

先进先出(FIFO)

环形队列、队满((rear+1)%队的长度=fronts牺牲一个空,用来区分队空和队满);队空(rear=fronts)

双向队列:

队列的内置模块:

四、链表

由一系列节点组成的元素集合。每个节点包含两部分:数据域item 和 指向下一个节点的指针next,,通过节点之间的相互连接,最终串联成一个链表。

创建链表:头插法、尾插法

链表的插入:O(1)

链表的删除:

双链表:

双链表的插入:

双链表的删除:

链表对图和树具有启发意义。# learning

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages