数据结构小结

2020-11-27  本文已影响0人  天命_风流

数组

数组的存储形式.jpg

链表

数组和链表的存储.jpg
单链表.jpg 链表的插入和删除.jpg
func (l *List) MoveBefore(e, mark *Element)
func (l *List) MoveAfter(e, mark *Element)

func (l *List) MoveToFront(e *Element)
func (l *List) MoveToBack(e *Element)

func (l *List) Front() *Element
func (l *List) Back() *Element

func (l *List) InsertBefore(v interface{}, mark *Element) *Element
func (l *List) InsertAfter(v interface{}, mark *Element) *Element

func (l *List) PushFront(v interface{}) *Element
func (l *List) PushBack(v interface{}) *Element
跳表-二级索引.jpg

栈.jpg
def sum(a,b):
    return a + b

if __name__ == '__main__':
    print(sum(1,2))

下面的图片展示了这个程序执行的过程:


函数调用栈,省略了变量名

队列

栈和队列.jpg 循环队列.jpg
阻塞队列.jpg

散列表(哈希表)

散列
  1. 开放寻址法:
散列冲突-开放寻址法.jpg
  1. 链表法
散列冲突-链表法.jpg

B+树

Trie树的结构是这样的:

Trie树

在这个树中,存储了“hello”、“her”、“hi”、“how”、“see”、“so” 几个查找关键字,当用户输入一个特定字符的时候,Trie树会搜索相关的节点,并遍历到树的叶子节点,途径的所有路径都会被记录下来,用于关键字提示:


Trie树搜索

实际上,输入法的自动补全,IDE的代码的自动补全,浏览器网址输入的自动补全,都使用了这种数据结构。

有向图.jpg
带权图.jpg 图存储-邻接矩阵.jpg 图存储-邻接表.jpg
上一篇 下一篇

猜你喜欢

热点阅读