首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
王道数据结构代码题C语言实现
海边孤独
创建于2022-04-22
订阅专栏
23版王道数据结构课后习题代码题C语言实现
暂无订阅
共14篇文章
创建于2022-04-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
逆序打印单链表
题目: 有一带头结点的链表,设计一算法从尾到头的输出每个节点的值。 分析: 这种类型就有点像是栈的性质,我们可以利用递归来处理,出口便是尾元素。
带头结点的单链表删除
题目:在带头结点的单链表L中,删除所有值为X的节点,并释放其空间,假设值为X的节点不唯一 分析: 和上题相似,只是多了一个头结点。另我们可以采取直接遍历的方式进行删除,设置前驱结点,当前节点来保证不锻
单链表删除
题目:设计一个递归算法,删除一个不带头结点的单链表中所有值为x的节点 分析: 首先我们要创建单链表,并赋值,然后递归去判断值,进行删除 代码: 注:删除函数的参数必须是引用值,因为引用直接代表原始值,
求两等长升序序列的中位数
题目:一个升序序列的中间位置的元素称为中位数,两个序列的中位数则是这两个序列升序排好序后的中间的数为中位数,现有两个等长的生序序列 A、B,找出它们的中位数。 分析: 我们可以先将这两个序列合并成一个
循环左移
题目:将arr中的存放的数据循环左移p个位置,即将arr中的(X0,X1,...,Xn-1变换为(Xp,Xp-1,...,Xn-1,X0,X1,...,Xp-1)),尽可能高效 分析: 本题与逆置数组
顺序表中查找元素
题目:线性表递增有序存放,设计一算法,用最少的时间查找值为x的元素,若找到则将其与后续元素位置相交换,否则,插入使其仍然有序 分析: 题目告知这是一个递增有序表,要使时间最少,我们可以采取折半查找的方
数组内部逆置
题目:已知在以为数组A[m+n]中依次存放两个线性表(a1,a2...,am)和(b1,b2,...,bn),现需要将两个线性表互换位置,b在前,a在后 分析: 要想达到这样的效果,我们可以进行三次逆
合并两个顺序表
题目:将两个有序顺序表合并成一个新的顺序表,并由函数返回新的结果顺序表 分析:手动开辟一个数组空间,其大小要大于等于原始两个数组的长度,之后进行遍历,依次取较小值赋给新数组,若有数组未取完,剩余部分全
C语言数组去重
题目:删除有序顺序表中重复的值,使表中所有的元素不同。 分析:因为是有序顺序表,我们可以直接进行遍历,将不同的元素存回数组 代码如下: 时间复杂度O(n),若顺序表无序,我们可以先进行排序,在进行处理
删除顺序表中指定范围的元素
题目:从顺序表中删除给定区间s~t之间的值,若给定区间不合理或顺序表为空,则显示错误信息并退出 分析:此题与上一题大同小异,只不过,循环体内部的判定条件有了变化,我们仍然可以采用上一题的思路进行编写;
删除顺序表元素
题目: 长度为n,删除值为x的数据元素,要求时间复杂度为O(n),空间复杂度O(1)。 分析: 用k记录删除元素个个数,一边遍历顺序表一边统计k,并将不等于x的元素向前挪k个位置。 代码如下:
顺序表逆置
实现一个空间复杂度为O(1)的顺序表逆置算法。 分析:从第一个元素开始遍历到中间元素,使用中间变量对a[i]与a[n-i+1]进行调换,即可完成。 代码如下:
顺序表删除最小值
/* 题目: 从顺序表中删除具有最小值的元素(假设唯一),并由函数返回被删除的值, 空出的位置有最后一个元素代替,若顺序表为空则显示错误信息并退出运行 / / 分析:我们可以将顺序表看做数组,即我们要
斐波那契数列,递归与非递归c语言实现
问题描述:求解斐波那契数列,分别采用递归方式与非递归方式 方式一:递归方式 优点:代码简洁,易读 缺点:由于递归时上一个结果需要用到后面的计算,就会进行嵌套,且存在重复计算,时间复杂度为O(2^n