
数据结构必会算法
发布日期:2021-05-07 15:59:07
浏览次数:23
分类:精选文章
本文共 1189 字,大约阅读时间需要 3 分钟。
顺序表与单链表操作
顺序表插入
在顺序表中插入元素的操作需要考虑以下几点:
判断插入位置合法性
插入位置i
必须满足 1 ≤ i ≤ last + 2
。如果 i
超出这个范围,说明插入位置不合法。 判断表是否满
如果顺序表的最后一个元素已经是MAXSIZE - 1
,则表已满,无法再插入新元素。 移动元素位置
需要将插入位置i-1
处的元素向右移动,腾出位置以便插入新元素。 插入新元素
将新元素插入到第i
个数据元素之前,并更新顺序表的尾指针 last
。 顺序表删除
在顺序表中删除元素的操作需要注意以下几点:
判断删除位置合法性
删除位置i
必须满足 1 ≤ i ≤ last + 1
。如果 i
超出这个范围,说明删除位置不合法。 获取待删除元素
将待删除的元素存储到指针e
中。 调整元素位置
将删除位置之后的元素向左移动,腾出位置。更新尾指针
删除操作完成后,更新顺序表的尾指针last
。 单链表操作
单链表的操作通常包括插入和删除元素。以下是常见的操作方法:
插入元素
插入操作需要找到插入位置i
,并将新元素插入到指定位置。需要注意链表为空的情况。 删除元素
删除操作需要找到待删除的位置,并将该节点从链表中移除。同样需要考虑链表为空的情况。顺序栈与链栈
顺序栈和链栈是基于数组和链表的栈结构,主要操作包括进栈和出栈。
顺序栈
- 进栈:检查栈是否已满,如果未满则将元素压入栈顶。
- 出栈:弹出栈顶元素,并释放栈空间。
链栈
- 进栈:通过分配内存创建新节点,将节点插入栈顶。
- 出栈:弹出栈顶节点,并释放分配的内存。
数据排序方法
常见的排序方法包括插入排序、冒泡排序和选择排序。以下是插入排序的实现步骤:
初始化
将待排序的元素从第二个位置开始逐个插入到已排序的子数组中。查找插入位置
对于当前元素,检查已排序子数组中是否有比它小的元素,找到插入位置。调整子数组
将当前元素插入到合适的位置,并将其前面的元素右移。折半插入排序
折半插入排序是一种优化的插入排序方法,通过每次将数组分成两部分来实现排序:
初始化
将数组分为两部分,左边和右边。选择合适的元素
从右边部分中选择一个元素,将其插入到左边的正确位置。重复上述操作
重复直到所有元素都被插入到左边的有序数组中。####冒泡排序 冒泡排序通过每次交换相邻的元素来实现排序:
初始化
设置需要的交换次数。逐次交换
从左到右遍历数组,比较当前元素和下一个元素的大小,若有顺序不对则交换。重复上述操作
重复上述过程,直到数组被排序。选择排序
选择排序通过找到当前最小的元素插入到正确位置来实现排序:
初始化
找到数组中最小的元素,并记录其位置。交换位置
将最小的元素与第一个位置交换。重复上述操作
重复直到所有元素都被插入到正确的位置。通过以上方法,可以实现不同类型数据的排序需求。
发表评论
最新留言
很好
[***.229.124.182]2025年04月10日 01时11分39秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux的软链接跟Windows快捷方式一样?
2019-03-05
更改github的默认语言类型
2019-03-05
使用bigdecima实例化时传int和string时的精度丢失
2019-03-05
使用第三方sdk,微信wechat扫码登录
2019-03-05
请求重定向redirect与http response status的冲突
2019-03-05
mysql中的行转列
2019-03-05
java8中的闭包Function/BiFunction
2019-03-05
flink —— checkpoint机制
2019-03-05
shell脚本中冒泡排序、直接排序、反转排序
2019-03-05
WPS及Excel中Alt键的妙用 快捷键
2019-03-05
C - 食物链 并查集
2019-03-05
Pycharm 常用快捷键
2019-03-05
基于Altium Designer的电子设计的入门指南
2019-03-05
基于LabVIEW的入门指南
2019-03-05
PCB布局系列汇总
2019-03-05
电阻入门知识
2019-03-05
电容入门知识
2019-03-05
1073 模拟万年历
2019-03-05