数据结构笔记

这篇笔记详细介绍了数据结构的基础知识,包括线性表的顺序和链式表示,数组的概念与特性,栈和队列的操作,串的存储方式以及树的基本术语和二叉树的特点。内容覆盖了数据结构中的核心概念,适合初学者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.线性表

线性表主要有两种表示方法一种是顺序表示,一种是链式表示。

 顺序表示链式表示
定义

一组地址连续的存储单元依次存储线性表的数据元素特征(逻辑相邻,地址相邻)

一组任意的存储单元存储线性表的数据元素(地址可以连续,也可以不连续(逻辑相邻,地址不一定相邻)
实现通过地址来实现逻辑相邻通过在对象中保存后继数据的存储位置实现逻辑相邻
优点查找方便,地址可直接计算得出,时间复杂度O(1)

删除和插入简单

缺点删除和插入较复杂,需要操作当前元素之后所有元素查询复杂,需要通过遍历链表来查找,时间复杂度O(n)
表现形式 

单链表:只含有一个指针域(查找只能从前往后遍历)

循环链表:与单链表相比,链表最后节点指向头节点

双向链表:有两个指针域,一个指向前驱,一个指向后继

2.数组

数组可以理解为一种特殊的线性表。数组一旦被定义,他的维度和维界就不再改变。数组除了初始化和销毁以外,只具有存储操作和修改操作。

3.栈与队列

 队列
定义只能在表尾进行插入和删除的线性表(后进先出)只能在表的一端进行插入,另一端进行删除的线性表(先进先出)
应用数制转换/括号匹配的检验/行编辑程序/迷宫求解/表达式求解/递归的实现操作系统的作业排队

4.串

串是由零个或者多个字符组成的有限序列。

串的定长顺序存储表示:用一组地址连续的存储单元存储串值的字符序列。

串的堆分配存储表示:仍以一组地址连续的存储单元存放串值字符序列,但存储空间是在程序执行过程中动态分配而来。

串的块链存储表示:采用链表形式存储,链表的每个节点可以是一个或者多个连续的地址。

5.树

树基本术语:

  • 结点:数据元素及指向起子树的分支
  • 结点的度:结点拥有的子树数
  • 叶子:度为零的结点
  • 分支结点:度不为零的结点
  • 树的度:树内各结点的度的最大值

二叉树:每个节点最多只有两个子树,并且左右子树不能颠倒。

特点:

1.在二叉树的第i层上最多有2的i-1次方个结点

2.深度为k的二叉树最多有2的k次方-1个结点

3.叶子数=度为2的结点数+1


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值