C语言数据结构与算法
文章平均质量分 92
欢迎订阅《数据结构与算法》专栏!
本专栏主要分为五个部分:
① 重要基础知识点详解
② 近百道练习题目详解
③ 数据结构与算法测试
④ 数据结构与算法实验
⑤ 数据结构与算法试卷
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
Want595
商务合作丨交流学习:请添加微信【Want_595】
展开
-
《零基础入门数据结构与算法》专栏介绍
欢迎订阅《零基础入门数据结构与算法》专栏!本专栏主要分为五个部分:① 重要基础知识点详解② 近百道练习题目详解③ 数据结构与算法测试④ 数据结构与算法实验⑤ 数据结构与算法试卷原创 2023-02-15 11:49:59 · 2450 阅读 · 3 评论 -
C语言实现顺序表的插入、删除
【问题描述】顺序表基础练习,包含初始化顺序表、建立顺序表、插入元素、查找元素、删除元素、输出顺序表中元素方法。要求使用插入元素方法建立顺序表,通过查询方法找到输入的元素值,并删除第一个等于输入值的元素,最后输出表中元素。原创 2022-09-21 11:40:07 · 3850 阅读 · 0 评论 -
顺序表基本练习-初始化、插入和输出
【问题描述】实现可变长顺序表的建表过程。任务要求:通过顺序表的初始化、插入算法,实现顺序表的建表,并依次输出顺序表元素。原创 2022-11-07 19:10:55 · 1157 阅读 · 0 评论 -
顺序表基本练习-删除元素
【问题描述】实现可变长顺序表的删除算法。任务要求:通过顺序表的初始化、插入算法,创建顺序表。根据删除需求,删除指定的顺序表元素。【输入形式】第一行输入整数N(1原创 2022-11-08 00:05:01 · 982 阅读 · 0 评论 -
顺序表基本练习-查找元素
【问题描述】实现可变长顺序表的查找算法。任务要求:通过顺序表的初始化、插入建立顺序表,根据查找要求,返回查找结果。【输入形式】第一行输入整数N,M。N表示创建长度为N的顺序表;M表示输入M个查找的关键值。第二行输入N个整数,表示顺序表的N个元素,依次放入表中;接下来输入M个查找的关键值。【输出形式】对于每个查找关键值,若找到,输出其在顺序表的位序,若未找到,输出“no”。原创 2022-11-08 00:06:36 · 1338 阅读 · 0 评论 -
顺序表删除重复元素
【问题描述】设一顺序表有若干元素,编写程序实现删除表中值重复的元素,即重复元素只保留一个。【输入形式】第一行输入一个N(N不大于100),表示顺序表的长度;第二行输入N个整数,表示顺序表元素;【输出形式】输出去重后的顺序表。原创 2022-09-23 07:30:48 · 3118 阅读 · 1 评论 -
顺序表实现集合并集
【问题描述】设有两个用顺序表表示的有序集合,输出它们的并集,要求仍然保持有序。【输入形式】第一行输入两个整数N和M(不大于100),分别表示两个集合的长度;第二行输入第一个集合的N个元素(递增有序);第三行输入第二个集合的M个元素(递增有序);【输出形式】输出两个集合的并集(仍然保持有序),元素之间以空格分隔。原创 2022-11-10 00:11:36 · 1572 阅读 · 0 评论 -
顺序表元素循环左移(new)
【问题描述】顺序表中有N(N>0)个元素,将每个元素循环左移M(M>=0,也可能会大于N)个位置。即顺序表中数据由(a1a2a3...an)变换为(am+1....ana1a2...am)。如果可以,控制时间复杂度为:O(n)原创 2022-12-12 10:03:06 · 1120 阅读 · 0 评论 -
删除顺序表中最小值
【问题描述】设有顺序表,删除顺序表中最小值。【输入形式】第一行输入一个N;第二行输入N个整数(以空格分隔);【输出形式】输出删除最小值元素后的顺序表【样例输入】512 98 34 -87 -23【样例输出】12 98 34 -23原创 2022-09-22 07:32:36 · 583 阅读 · 0 评论 -
递增顺序表插入
【问题描述】设有递增有序顺序表,实现其插入元素后依然有序。【输入形式】第一行输入一个N(N不大于100);第二行输入N个整数(假设输入序列按照递增顺序,以空格分隔);第三行输入一个整数M(欲插入数据);【输出形式】输出插入M后的顺序表。【样例输入】512 25 35 98 12577【样例输出】12 25 35 77 98 125原创 2022-09-22 14:08:06 · 2390 阅读 · 0 评论 -
将顺序表非零元素依次移到表的前端
【问题描述】将顺序表中所有非零元素依次移到表的前端。【输入形式】第一行输入整数N表示表长;第二行输入N个整数,可包含零。【输出形式】输出将非零元素移到前端的表中元素,以空格作为分隔。原创 2022-11-09 00:02:49 · 714 阅读 · 0 评论 -
删除顺序表中第一个值等于x的元素
【问题描述】设有顺序表,删除顺序表中第一个值等于x的元素。【输入形式】第一行输入一个N;第二行输入N个整数(以空格分隔);第三行输入要删除的元素值x。【输出形式】输出删除第一个值等于x的元素后的顺序表【样例输入】512 98 34 -87 -2334【样例输出】12 98 -87-23【评分标准】补充函数,完成上述功能。原创 2022-10-31 18:24:20 · 1438 阅读 · 0 评论 -
在顺序表中,输入一个元素插入到原表的最小元素之前
【问题描述】设有顺序表,输入一个元素插入到顺序表最小元素之前。【输入形式】第一行输入一个N;第二行输入N个整数(以空格分隔);第三行输入一个整数(将该整数插入到顺序表最小元素之前)【输出形式】输出插入后的顺序表元素【样例输入】512 98 34 -87 -2320【样例输出】12 98 34 20-87 -23【评分标准】补充指定函数内容,不得修改程序中其他代码。原创 2022-10-17 17:23:30 · 391 阅读 · 0 评论 -
字符统计问题
【问题描述】输入字符串,统计字符串中字母(包括大小写)、空格的个数。【输入形式】输入多个字符串(包括字母、空格、数字和其他字符),每个字符串为一行。(字符串长度最大不超过100)【输出形式】输出每个字符串的字母个数 空格个数(以空格作为分隔符)【样例输入】%4dB *hg #abcdefghijk【样例输出】4 211 0原创 2023-05-10 13:44:14 · 1486 阅读 · 0 评论 -
函数调用-求整数各位数字之和
【问题描述】编写函数int sum(int x),求整数x的各位数字之和。编写一个程序,调用sum函数计算任一输入的整数的各位数字之和。【输入形式】控制台输入一个整数。【输出形式】输出一个整数,是根据该输入整数计算各位数字之笔。【样例输入】58【样例输出】13【样例说明】输入整数58,其各位数字之和5+8 = 13。【评分标准】该题要求输出一个整数。原创 2023-05-10 13:52:02 · 1438 阅读 · 0 评论 -
结构体数组-学生记录排序
【问题描述】从键盘中读入最多不超过50个学生的学生信息(包括空格隔开的学号、姓名、年龄)【输入形式】每次键盘读入最多不超过50个学生的学生信息:第一行为学生人数;后面每一行为空格隔开的学生学号、姓名、年龄,其中学号和年龄是整数。【输出形式】分别以姓名顺序(从低到高)和年龄顺序(从低到高)将学生信息输出,每行输出一位学生的信息,其中学号占3位,姓名占6位,年龄占3位。年龄相同时按姓名从低到高排序。两种顺序的输出结果用一行空行相隔。原创 2023-05-10 13:48:03 · 1240 阅读 · 0 评论 -
数组序列-统计分数段人数
【问题描述】输入一批学生(人数不超过100)的整数成绩,以10分为一个分数段,统计各分数段学生人数。【输入形式】输入一批整数代表成绩,输入-1结束。【输出形式】输出各分数段的人数。【样例输入】67 78 66 89 90 -1【样例输出】60--69:270--79:180--89:190--99:1【样例说明】人数为0的分数段不用输出原创 2023-05-10 13:45:37 · 1306 阅读 · 0 评论 -
最大公约数与最小公倍数
【问题描述】写两个函数,分别求两个正整数的最大公约数和最小公倍数,主函数调用这两个函数,并输出结果。两个正整数由键盘输入。【输入形式】两个正整数(以空格分隔)【输出形式】最大公约数 最小公倍数(以空格分隔)【样例输入】6 15【样例输出】3 30【样例说明】有多组测试数据原创 2023-05-10 13:54:08 · 1672 阅读 · 0 评论 -
最大子列和问题
【问题描述】给定整数a1,a2,a3,...an(可能有负数),求子列和的最大值(如果所有整数均为负数,则最大子列和为0)。【输入形式】第一行输入n,为整数个数,第二行输入n个整数(可以有负数)。【输出形式】输出最大子列和。【样例输入】10-9 10 -11 8 -7 9 7 -4 8 -7【样例输出】21【样例说明】请大家分别用不同的方法完成此题并注释说明。原创 2023-05-10 13:52:36 · 899 阅读 · 0 评论 -
计算最大销售增幅
【问题描述】编写函数 maxIncrease,用于计算一个销售额序列中的最大销售增幅。这里的销售额都是非负整数。对于给定的销售额序列 A,假设序列 A 的长度为 n,最大销售额增幅是指满足0原创 2023-05-10 13:49:57 · 1211 阅读 · 0 评论 -
计算职工工资
【问题描述】给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。【输入形式】输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。【输出形式】按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。原创 2023-05-10 13:55:51 · 1741 阅读 · 0 评论 -
单链表基本练习-初始化、插入和输出
【问题描述】设有头结点单链表,实现单链表的初始化、插入和输出算法。【输入形式】第一行输入一个N(N大于等于1,小于1000),一个M(N大于等于1,小于1000);第二行输入N个整数,以空格作为分隔,创建长度为N的单链表;接着输入M组数据:pos和e,以空格分隔,分别表示插入位置和插入元素的值。【输出形式】若插入成功,输出yes;若插入不成功,输出error。最后输出单链表所有元素(以空格分隔)。原创 2022-11-07 18:22:45 · 721 阅读 · 0 评论 -
单链表基本操作-查找
【问题描述】实现有头结点单链表查找算法:根据关键字值查找其在单链表中的位置(第一次出现的位置)。【输入形式】第一行输入整数n(n不大于1000),表示单链表长度;第二行输入若干个整数(以非法整数或文件末尾作为结束),表示欲查找的关键字值;【输出形式】输出每个关键字值在单链表中的位置。若未找到,输出“no”。原创 2022-11-07 18:19:14 · 1306 阅读 · 0 评论 -
单链表基本练习-删除
【问题描述】设有头结点单链表,实现单链表删除。【输入形式】第一行输入N,M;N表示单链表表长,M表示执行M次删除;第二行输入N个整数,建立有头结点单链表;接着输入M个整数,每个整数表示删除结点的位置(位序)。【输出形式】若删除成功,输出删除结点的关键字值;若删除不成功,则输出error。最后输出执行M次删除后的单链表。原创 2022-11-07 18:20:56 · 877 阅读 · 0 评论 -
建立带头结点的单链表
【问题描述】设有头结点单链表,实现单链表建立算法。【输入形式】第一行输入一个N(N大于等于1,小于1000);第二行输入N个整数,以空格作为分隔,创建长度为N的单链表。【输出形式】输出建立的单链表。原创 2022-09-21 12:09:23 · 2031 阅读 · 0 评论 -
统计不带头结点的单链表长度(循环方法)
【问题描述】统计不带头结点的单链表结点个数。【输入形式】重复输入数字建立不带头结点的单链表,输入字符结束。【输出形式】输出单链表结点的个数。原创 2022-09-23 12:30:17 · 1445 阅读 · 0 评论 -
单链表插入
【问题描述】设有头结点单链表,实现单链表插入算法。【输入形式】第一行输入一个N(N大于等于1,小于1000);第二行输入N个整数,以空格作为分隔,创建长度为N的单链表;第三行输入pos和e,以空格分隔,分别表示插入位置和插入元素的值。【输出形式】若插入成功,输出插入元素后的单链表;若插入不成功,输出error。原创 2022-09-23 07:30:27 · 887 阅读 · 0 评论 -
单链表删除
【问题描述】设有头结点单链表,实现单链表删除。【输入形式】第一行输入N,表示单链表表长为N;第二行输入N个整数,建立有头结点单链表;第三行输入一个整数M,表示删除结点位置为M(即第M个元素)。【输出形式】若删除成功,先输出删除结点的值;下一行输出删除后单链表的所有元素;若删除不成功,输出error。【样例输入1】510 20 30 40 502【样例输出1】2010 30 40 50【样例输入2】1010 20 30 40 50 60原创 2022-09-22 15:24:26 · 1719 阅读 · 0 评论 -
在带头结点的单链表的最大值前面插入一个新的结点
【问题描述】在带头结点单链表中查找最大值,将新输入的值插入到最大值前面,输出插入新元素后的单链表各元素。【输入形式】第一行输入若干个整数,以字母结束输入,建立带头结点的单链表;第二行输入待插入的元素值。【输出形式】输出插入新值后的单链表各元素。原创 2022-10-31 18:47:03 · 1306 阅读 · 1 评论 -
有头结点单链表中查找值等于指定值的结点
【问题描述】实现有头结点单链表查找算法:根据关键字值查找单链表中第一个等于e的结点,找到该结点则将该结点值增10,并依次输出单链表中各元素值;如果没有找到则输出“no”。【输入形式】第一行输入整数n(n不大于1000),表示单链表长度;第二行输入n个整数建立单链表;第三行输入一个整数,表示待查找的元素值。【输出形式】若找到指定结点,输出修改指定结点后的单链表中各元素值;若未找到,输出“no”。原创 2022-09-26 16:52:20 · 949 阅读 · 0 评论 -
在带头单链表中查找倒数第k个结点(参数传出)
在带头结点的非空单链表中查找倒数第k个结点,如果查找不成功返回0,查找成功通过参数传回倒数第k个结点值并返回1,主函数中根据查找结果输出结点值,没有找到输出*。原创 2022-09-22 08:52:26 · 775 阅读 · 0 评论 -
删除链表中的重复元素
【问题描述】给定一个已排序的链表head,删除原始链表中所有重复数字的节点,返回执行删除后的链表。【保证链表已经按升序排列】【输入形式】输入链表的元素(链表长度大于等于0)【输出形式】输出执行删除后的链表元素。(若删除后链表长度为0,则什么都不输出)原创 2022-11-25 14:16:35 · 1242 阅读 · 1 评论 -
删除带头结点的单链表中值重复的元素
【问题描述】建立带头结点的单链表,编写程序实现删除表中值重复的元素,即重复元素只保留一个。【输入形式】第一行输入一个N,表示建表的长度;第二行输入N个整数,表示数据元素。【输出形式】输出去重后的单链表元素。原创 2022-09-23 13:30:21 · 1337 阅读 · 0 评论 -
删除带头结点单链表中倒数第k个结点
【问题描述】设有头结点单链表,删除单链表中倒数第k个结点。【输入形式】第一行重复输入整数建立带头结点的单链表,输入字符结束。第二行输入一个整数k,表示删除倒数第k个结点。【输出形式】输出删除后单链表的所有元素原创 2022-09-21 22:20:07 · 957 阅读 · 1 评论 -
删除带头结点的单链表中元素值小于x的所有元素
【问题描述】有整数构成的带头结点单链表,根据输入的x值,删除表中元素值小于x的所有元素,输出删除后的单链表元素。【输入形式】第一行输入整数n,表示顺序表中有n个元素;第二行输入n个整数建立带头结点单链表;第三行输入x,用于删除表中小于x的元素【输出形式】输出删除后的表内元素原创 2022-11-11 05:00:00 · 445 阅读 · 1 评论 -
在带头结点单链表中查找最大值,将其与最后一个元素交换(交换值)
【问题描述】在带头结点单链表中查找最大值,将其值与最后一个元素交换,输出交换后的单链表各元素。【输入形式】循环输入若干个整数,以字母结束输入,建立带头结点的单链表。【输出形式】输出最大值与最后一个元素交换后的单链表元素。原创 2022-09-25 20:09:34 · 1374 阅读 · 0 评论 -
链表字符统计
【问题描述】单链表实现字符统计。【输入形式】从键盘输入N个字符,字符以逗号隔开。【输出形式】统计各字符出现的次数,并删除重复字符。原创 2022-09-23 07:31:05 · 624 阅读 · 0 评论 -
有头结点单链表逆置
【问题描述】设有头结点单链表,编写算法实现单链表逆置。【输入形式】第一行输入一个整数N;第二行输入N个整数,以空格作为分隔,创建单链表;【输出形式】输出逆置后的单链表,,元素之间以空格分隔。【样例输入】510 20 30 40 50【样例输出】50 40 30 20 10原创 2022-09-22 16:16:11 · 546 阅读 · 0 评论 -
双向循环链表修复
【问题描述】假设一个双向循环链表,其结点含有三个域:prior,data和next。其中data为数据域;prior指向前驱结点,next指向后继结点。创建链表时,只链接了next域,导致链表只是一个单向循环链表。请补充算法,修复双向链表,可以实现双向访问。【输入形式】第1行输入n,表示输入n个数据。第2行输入n个整数,创建循环链表。(只创建了单向)【输出形式】从头到尾输出链表元素;从尾到头输出链表元素;原创 2022-11-08 10:53:02 · 289 阅读 · 1 评论 -
双向链表中插入结点并输出
【问题描述】仿照有头结点单链表的存储和基本操作,设计双向链表-非循环链表(初始化、插入、输出)。对带头结点的双向链表,实现数据插入。【输入形式】第一行输入一个N(N大于等于1,小于1000);第二行输入N个整数,以空格作为分隔,创建长度为N的双向链表,为双向输出方便,需保留头尾指针;第三行输入pos和e,以空格分隔,分别表示插入位置和插入元素的值。【输出形式】若插入位置合法,插入成功,则输出:第一行从头开始顺向输出双向链表中元素,用空格分隔;第二行从尾结点开始逆向输出双原创 2022-10-17 17:27:00 · 802 阅读 · 0 评论