![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 66
三个臭皮姜
这个作者很懒,什么都没留下…
展开
-
二叉树的层序遍历(C语言实现)
二叉树的层序遍历,用辅助队列实现。库存代码,好久以前写的了,发这个目的是防止丢失,万一以后需要还能捡起来。原创 2023-02-13 15:59:55 · 538 阅读 · 0 评论 -
串的应用---字符串暴力匹配(C语言实现)
串的应用—字符串暴力匹配(C语言实现)文章目录串的应用---字符串暴力匹配(C语言实现)算法思想--举个例子代码实现测试算法思想–举个例子 来看个图就明白了: 【匹配成功的情况】 ①初始时: ②第一个能匹配,指针后移: ③第二个也能匹配,并且子串已经到了末尾,匹配结束,匹配成功。 【匹配失败】 ①第一步与上面相同:两指针都指向第一个字符。 ②第二步,指针后移: 第二步的时候发现不匹配,这时,需要更新指针 i 的位置,由于第一个字符已经比较过了原创 2021-11-05 07:00:00 · 861 阅读 · 0 评论 -
栈的应用---用栈实现括号匹配(C语言实现)
括号匹配#include<stdio.h>#include<stdlib.h>#include<stdbool.h> //根据C99标准,C语言使用bool类型需要添加这个头文件#define MaxSize 10 //顺序栈这里使用静态分配的方式,所以手动规定最大容量 typedef char ElemType;// //-------结构体定义部分------ //typedef struct{ ElemType data[MaxSize]; i原创 2021-11-04 12:42:10 · 5252 阅读 · 0 评论 -
带权无向图的邻接矩阵表示法(C语言实现)
带权无向图的邻接矩阵表示法(C语言实现)文章目录带权无向图的邻接矩阵表示法(C语言实现)一、邻接矩阵表示法二、本次程序实现的功能三、带权无向图的结构体定义四、创建无向图及邻接矩阵五、输出邻接矩阵六、输出顶点集合七、判断两顶点是否邻接八、全部代码九、测试一、邻接矩阵表示法 定义:所谓邻接矩阵存储,是指用一个一维数组存储图中顶点的信息,用一个二维数组存储图中边的信息(即各顶点之间的邻接关系),存储顶点之间邻接关系的二维数组称为邻接矩阵。 对于带权图而言,若顶点Vi 和 Vj 之间有边相连,则邻接原创 2021-11-02 23:53:21 · 27519 阅读 · 4 评论 -
二叉树相关操作(基于递归,C语言实现)
二叉树相关操作(C语言实现)文章目录二叉树相关操作(C语言实现)一、前序方式创建二叉树二、3种递归方式遍历2.1 前序遍历2.2 中序遍历2.3 后序遍历三、求叶子结点(度为0)个数四、求度为1的结点个数五、求度为2的结点个数六、求某结点的左右孩子七、求某结点的父结点八、求一共有多少个结点销毁树全部代码一、前序方式创建二叉树//前序方式建立 BTnode *CreateTree(){ BTnode *T; char ch; scanf("%c",&ch);//在后台直接输入一整串,例原创 2021-11-01 22:31:03 · 184 阅读 · 0 评论 -
单链表练习题-删除无序单链表中所有的重复元素(两种方法,C语言实现)
单链表练习题-删除无序单链表中所有的重复元素(两种方法,C语言实现)文章目录单链表练习题-删除无序单链表中所有的重复元素(两种方法,C语言实现)一、前言二、两种实现方式与优劣2.1 使用哈希存储2.2 使用两重循环三、全部代码四、测试一、前言 与前一篇单链表练习题-删除有序单链表中的重复元素(C语言实现)不同,本次实现的是删除单链表中所有的重复元素,无论数据是否有序。二、两种实现方式与优劣2.1 使用哈希存储 哈希存储是一种典型的以空间换时间的方法,之前用它来统计数字出现的次数,参见:C原创 2021-10-31 11:26:48 · 1302 阅读 · 7 评论 -
单链表练习题-向有序单链表中插入元素并保持有序(C语言实现)
单链表练习题-向有序单链表中插入元素并保持有序(C语言实现)文章目录单链表练习题-向有序单链表中插入元素并保持有序(C语言实现)一、题目二、思路三、动手实现四、全部代码五、测试一、题目 如图,原本链表就有序:假设现在要插入元素15,我们希望它插入在10和16之间。假设现在要插入元素5,我们希望它插入在7的前面。假设现在要插入元素22,我们希望它插入在20后面。二、思路 由于原来的链表已经有序,那么我们只需要一个指针就可以了。用指针p遍历链表,比较p当前所指元素和p后继的元素,如果要原创 2021-10-29 23:01:18 · 4825 阅读 · 1 评论 -
单链表练习题-构造环以及判断是否有环(C语言实现)
单链表练习题-构造环以及判断是否有环(C语言实现)文章目录单链表练习题-构造环以及判断是否有环(C语言实现)一.题目二.构造环三.判断是否有环四.全部代码五.测试一.题目 如下图所示:本次就是要构造环以及判断是否有环。二.构造环 构造环比较简单,只需要修改某个结点的指针就可以了,为了方便我这里直接修改尾结点的指针,使其指向指定元素的后继,这样就构成了一个环。bool Make_Loop(LinkList *L,ElemType e) //构造环,直接让尾指针指向特定结点的后继原创 2021-10-28 18:15:44 · 888 阅读 · 0 评论 -
单链表练习题-删除有序单链表中的重复元素(C语言实现)
练习题-删除有序单链表中的重复元素(C语言实现)文章目录练习题-删除有序单链表中的重复元素(C语言实现)一、题目二、思路三、代码实现四、全部代码五、测试一、题目 如题所述,是对单链表进行操作,而且链表是有序的,意味着重复元素都是挨在一块儿的,如下图所示: 或者是这样的:二、思路 既然重复元素都是连续挨着的,那么我们可以设置一个快慢指针,用temp指向上一个元素的值,p指向当前元素,如果p所指和temp所指元素相等,那么把p所指的结点删除,temp保持不动,p指针后移;如果p所指和原创 2021-10-06 17:54:38 · 3232 阅读 · 1 评论 -
C语言实现双链表
C语言实现双链表文章目录C语言实现双链表说明实现的功能结构体定义初始化插入结点删除结点输出所有元素全部代码测试说明图片自己画的,有点丑,不要介意。本文来自专栏:数据结构后续还会继续coding。如果有需要可以关注点赞一波。实现的功能 插入结点 删除结点 从头到尾遍历输出所有元素 获取某个结点的前驱和其后继结点获取前驱和后继主要是为了测试双链表是否编写正确,因为双链表可以访问前驱,这是与单链表不同的地方。结构体定义typedef struct BiLinkNode{ Elem原创 2021-10-01 22:24:25 · 753 阅读 · 1 评论 -
C语言-学生成绩管理系统
C语言-学生成绩管理系统文章目录C语言-学生成绩管理系统前言实现的功能添加学生信息根据学号查询根据学号删除学生记录根据学号查询并修改信息根据语文成绩从高到低排序全部代码系统功能测试前言最近在复习C语言和数据结构,于是用纯C语言写个成绩管理系统练练手。实现的功能系统的主界面如下:如界面所示,主要实现了以下功能: 增加记录 删除记录 查询记录 修改记录 排序 求和求平均分写的比较简单,但是这些基本的功能都实现了,希望能给大家起一个抛砖引玉的作用。该系统有很多可以优化的空间,比如原创 2021-09-03 11:23:34 · 3262 阅读 · 0 评论 -
C语言实现二分查找
C语言实现二分查找前言 二分查找比较简单,但还是花5分钟写一下,方便以后偷懒。什么是二分查找 二分查找就是折半查找,相信大家都玩过猜数字的游戏,每次用二分法才就可以用最少的次数猜出数字。 假设有一个数组,A[10] = {11,12,13,14,15,16,17,18,19,20}。 定义三个指针:low,mid,high。以及我们要查找的目标数字goal。 初始时low指向第一个元素,high指向最后一个元素,每次mid=(low+high)/2,当目标值在mid的右边时原创 2021-09-23 17:19:23 · 163 阅读 · 0 评论 -
C语言实现顺序队列、循环队列和链式队列
C语言实现顺序队列、循环队列和链式队列文章目录C语言实现顺序队列、循环队列和链式队列一.顺序队列顺序队列的定义顺序队列全部代码二.循环队列循环队列的概念相关操作循环队列全部代码三.链式队列(带头结点)存储类型定义入队出队链式队列全部代码参考资料一.顺序队列顺序队列的实现比较简单,使用数组的方式存储即可。由于这种方式是静态存储,即一旦规定内存大小便不可改变,所以有可能会发生溢出,因而在实际使用中也没有太大的价值。所以我这里只做了一个简单实现,实现基本的入队和出队以及判断队空和队满等功能。顺序队列的定义原创 2021-09-15 16:01:31 · 1969 阅读 · 0 评论 -
C语言实现顺序栈
C语言实现顺序栈文章目录C语言实现顺序栈前言实现的功能主界面截图栈的定义栈的初始化入栈出栈获取栈顶元素全部代码功能测试前言最近在复习数据结构和C语言,就想照着自己的理解继续盲打代码。本次是实现了一个顺序栈,也就是采用静态分配的方式,这种方式实现起来比较简单。后续还会练习实现链栈等数据结构。栈是一种后进先出的数据结构,只允许在一端(栈顶)访问元素。实现的功能 初始化栈 入栈 出栈 获取栈顶元素主界面截图栈的定义typedef int ElemType;//给数据类型取别名,此次原创 2021-09-06 09:53:49 · 1334 阅读 · 0 评论