朝花夕拾 · 数据结构 | 重温常用数据结构
文章平均质量分 72
剑指offer.
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
朝花夕拾 · 数据结构 | 二叉树篇
非空二叉树上的叶结点数等于度为2的结点数加1,即。证明:设度为0,1和2的结点个数分别为n0,n1和n2,结点总数n=n0+n1+n2。再看二叉树中的分支数,除根结点外,其余结点都有一个分支进入,设B为分支总数,则n=B+1。这些分支是由度为1或2的结点射出的,因此又有B=n1+2n2。于是得n0+n1+n2=n1+2n2+1,则n0=n2+1。非空二叉树的(k≥1)。第1层最多有2^(1-1)=1个结点(根),第2层最多有2^(2-1)=2个结点,以此类推,可以证明。原创 2026-08-18 19:51:10 · 441 阅读 · 0 评论 -
朝花夕拾 · 数据结构 | 哈希表篇
在构造散列函数时,必须注意以下几点:1)散列函数的定义域必须包含全部关键字,而值域的范围则依赖于散列表的大小。2)散列函数计算出的地址应尽可能均匀地分布在整个地址空间,尽可能地减少冲突。3)散列函数应尽量简单,能在较短的时间内计算出任意一个关键字对应的散列地址。下面介绍常用的散列函数。代码实现:哈希表的定义。原创 2026-08-19 16:58:29 · 482 阅读 · 0 评论 -
朝花夕拾 · 数据结构 | 链表篇
线性表的链式存储也称单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素。为了建立数据元素之间的线性关系,对每个链表结点,除存放元素自身的信息外,还需要存放一个指向其后继的指针。单链表结点结构如图2.3所示,其中data为数据域,存放数据元素;next为指针域,存放其后继结点的地址。typedef struct Node //定义结点结构int data;}Node;typedef struct //定义链表结构int len;}Link;原创 2026-08-13 18:47:47 · 689 阅读 · 0 评论 -
朝花夕拾 · 数据结构 | 队列与栈篇
1.队列的定义队列(Qucue)简称队,也是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队;删除元素称为出队或离队。这和我们日常生活中的排队是一致的,最早排队的也是最早离队的,其操作的特性是先进先出(FirstInFirst Out,FIFO),如图所示。队头(Front):允许删除的一端,也称队首。队尾(Rear):允许插入的一端。空队列:不含任何元素的空表。顺序队列的两种定义:1.2.以第一种定义为例,以下为相关CRUD功能实现。原创 2026-08-17 17:48:36 · 463 阅读 · 0 评论
分享