- 博客(3)
- 收藏
- 关注
原创 栈(一):认识数据结构中顺序栈及其操作
摘要:栈是一种后进先出(LIFO)的线性表结构,仅允许在栈顶进行插入和删除操作。介绍了栈的顺序存储实现方式(顺序栈),包括其存储结构定义和基本操作:初始化(InitStack)、判空(StackEmpty)、入栈(Push)、出栈(Pop)。还给出了利用栈实现十进制转十六进制的算法示例,通过不断取余入栈、依次出栈打印完成进制转换。栈顶指针top是关键标识,空栈时top=-1,栈满时top=MAXSIZE-1。
2025-10-31 21:51:44
389
原创 二分查找(详细分析)
因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的。(2)对应两种写法:区间的定义这就决定了二分法的代码应该如何写。数据: 1 3 5 7 9 11 13。索引: 0 1 2 3 4 5 6。中间下标 = (0 + 6) / 2 = 3。中间下标 = (4 + 6) / 2 = 5。(1)首先要判断二分法是哪种区间?→ 7 < 9,说明目标在右半边。→ 11 > 9,目标在左半边。(2)数组中无重复元素。(1)数组为有序数组。新范围:[4, 6]新范围:[4, 4]
2025-10-12 17:23:10
499
原创 数组理论基础
C++的话,要注意vector 和 array的区别,vector的底层实现是array,严格来讲vector是容器,不是数组。不同编程语言的内存管理是不一样的,以C++为例,在C++中二维数组是连续分布的。数组可以方便的通过下标索引的方式获取到下标对应的数据。支持动态扩容(自动在堆上重新分配空间)。数组的元素是不能删的,只能覆盖。(1)array(原生数组)结果:每个地址相差4个字节,
2025-10-10 14:40:59
303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅