面试——王道408数据结构知识点总结

在这里插入图片描述

Xmind思维导图下载

描述

  1. 数据结构是相同性质的数据元素的集合
  2. 数据结构三要素是逻辑结构、存储结构、数据的运算
  3. 逻辑结构包括集合、线性结构、树形结构、图状结构
  4. 集合:元素间无特殊的联系
  5. 线性结构:元素间只有一对一的联系
  6. 树状结构:元素间有一对多的联系
  7. 图状结构:元素间存在多对多的联系
  8. 线性结构包括栈、队列、串、数组、线性表
  9. 树状结构包括一般树和二叉树
  10. 图状结构包括有向图和无向图
  11. 栈,只能从一边进行插入和删除,先进后出
  12. 队列,只能从尾部插入,从头部删除,先进先出
  13. 数组,每个元素的大小相同
  14. 栈分为顺序栈、链栈和共享栈
  15. 队列分为顺序队列、链式队列、双端队列、循环队列
  16. 数组分为可压缩矩阵和稀疏矩阵
  17. 线性表分为顺序表、单链表、双链表和静态表
  18. 树形结构分为逻辑结构和存储结构
  19. 逻辑结构分为满二叉树、完全二叉树、二叉排序树和平衡二叉树
  20. 存储结构分为顺序二叉树和链式二叉树
  21. 数据结构三要素的结构分为顺序存储、链式存储、哈希存储、索引存储
  22. 顺序存储
  • 逻辑上相邻,物理上也相邻
  • 可以随机存取
  • 元素内部空间可以充分利用,但是可以产生外部碎片
  1. 链式存储
  • 逻辑上相邻,物理上可以不相邻
  • 只能顺序存取
  • 元素内部指针域浪费空间,但是不会产生外部碎片
  1. 哈希存取
  • 根据关键字计算元素地址
  • 增删改查快
  • 散列函数不好,可能产哈希冲突
  1. 索引存储
  • 根据索引表查找元素地址
  • 增删慢,改查快
  • 索引表额外占空间

主要结构体

  1. 静态顺序表
#define MaxSize 50
typedef struct {
	ElemType data[MaxSize]; 
	int length;
}SqList;
  1. 动态顺序表
#define InitSize  100
typedef struct{
	ElemType *data;
	int MaxSize,length;
}SeqList;
  1. 单链表
typedef struct LNode{
	ElemType data;
	struct LNode *next;
}LNode,*LinkList;
  1. 双链表
typedef struct DNode{
	ElemType data;
	struct DNode *prior,*next;
}DNode,*Dlinklist;
  1. 顺序栈
#define MaxSize 50
typedef struct{
	Elemtype data[MaxSize];
	int top;
}SqStack;
  1. 链栈
typedef struct Linknode{
	ElemType data;
	struct Linknode *next;
}*LiStack;
  1. 顺序队列
#define MaxSize 50
typedef struct {
	ElemType data[MaxSize];
	int front,rear;
}SqQueue;
  1. 二叉树的链式存储
typedef struct BiTNode{
	ElemType data;
	struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
  1. 线索二叉树
typedef struct ThreadNode{
	ElemType data;
	struct ThreadNode *lchild,*rchild;
	int ltag,rtag;
}ThreadNode,*ThreadTree;
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆羽飘扬

如果有用,请支持一下。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值