数据结构学习笔记1-概述
-------------------一、数据结构--------------------------------------
1.链表
------游标
------一种用来模拟链式分配的方法,游标在不支持指针类型的编程语言中很有用。
------顺序表/顺序存储结构线性表:
------多维数组的一种动态方式,每个元素都包含额外的指针和位置信息来保证数组之间能够正确连接并访问。
------单链表:单向循环
------元素之间由一个单独的指针连接。单链表允许从第一个结点开始遍历到最后一个结点。
------双链表/双向链表:单向循环
------链表元素通过两个指针连接。双向链表允许正向和反向遍历结点。
------循环链表:单向循环
------链表最后一个元素的指针指向链表的首元素,而不是设置NULL。循环链表允许循环遍历结点。
------双向循环链表:双向循环
------该形式链表允许正向和反向循环遍历结点。
------广义表
------广义表是一种为元素之间提供更灵活的连接关系的数据结构。例如,可能会在一组元素中用到多个指针来组织成多个链表,每个链表代表一种不同的元素顺序(如模拟指针)。
------哈希表
2.栈
3.队列
------简单队列:
------双队列/双向队列:
------能够在队列的头部和尾部都进行插入和删除操作
------循环队列
------循环队列类似于循环链表。与循环链表不同的是,循环队列没有队尾,队列的最后一个元素指向队列的第一个元素,以便队列能够以循环的方式来遍历。
4.树
------二叉树
------(1)二叉搜索树
------(2)完全二叉树
------(3)AVL树
------(4)查找二叉树
------K叉树
------红黑树
------Trie树
------B树、B+树、B*树
5.堆和优先队列(优先队列从堆自然衍生而来的数据结构)
------K叉堆
6.图
-------------------二、算法--------------------------------------
1.排序
------插入排序
------快速排序
------归并排序
------计数排序
------基数排序
2.查找
------二分查找