C语言
文章平均质量分 51
Xenoverse
Sdibt iMaker/山东工商学院 大二在读
展开
-
C语言利用栈的操作实现判断字符串中的括号是否匹配(只考虑半角括号:( ) { } [ ])
C语言利用栈的操作实现判断字符串中的括号是否匹配(只考虑半角括号:( ) { } [ ])题目均在sdibt acm oj上AC,参考《深入浅出数据结构和算法》教材,逐个复制即可运行,欢迎评论指正! Description 输入一串字符串,编写算法判断字符串中的括号是否匹配,如果匹配,输出1,否则输出0。注: 只考虑半角括号:( ) { } [ ],不考虑全角括号:( ) 【 ...原创 2018-10-06 10:09:30 · 9123 阅读 · 2 评论 -
C语言利用循环单链表解决约瑟夫问题
Description 编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他的顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。请设计一个程序输出出列顺序。提示:存储结构采用不带头结点的循环单链表,...原创 2018-12-12 12:40:01 · 1530 阅读 · 0 评论 -
C语言建立循环单链表并输出
Description 依次输入n(n>0)个整数,建立带表头结点的循环单链表,并依次输出单链表中的元素值。提示:结点结构如下:typedef struct Node{ int data; struct Node *next;}LNode,*LinkList;要求:(1)编写函数,从键盘输入n个数,建立带头结点的循环单链表。 (2...原创 2018-12-12 12:38:15 · 5734 阅读 · 1 评论 -
C语言利用链表求集合的交集
Description 假设元素依值递增有序排列的线性表A和B分别表示两个集合(即同一表中的元素值各不相同),现要求另辟空间构成一个线性表C,其元素为A和B中元素的交集,且表C中的元素也依值递增有序排列。输入A和B集合中的元素;输出A和B的交集C中的元素。提示:存储结构采用带表头结点的循环单链表,结点结构如下:typedef struct Node{ int da...原创 2018-12-12 12:36:04 · 3590 阅读 · 2 评论 -
C语言利用顺序表求两个集合的差集
DescriptionA和B分别表示两个集合,集合中的元素为整数,C=A和B的差集,计算并依次输出C中的元素。要求:用顺序表存储,另辟空间保存C中元素 。Input输入集合A的元素个数n(n>=0)依次输入A中的元素,以空格分隔。输入集合B的元素个数m(m>=0)依次输入B中的元素,以空格分隔。Output依次输出C中的元素,以空格分隔。Sampl...原创 2018-12-12 12:34:37 · 9627 阅读 · 4 评论 -
C语言堆排序(HeapSort)的思想和代码实现
C语言堆排序(HeapSort)的思想和代码实现经过一晚上和有一早上的思考和学习,在Clion上反复的单步调试之后,我总结了关于堆排序这个算法的一点体会。现在来记录一下,如有错误,欢迎批评指出,谢谢!首先:什么是堆排序,为什么叫堆?Heapsort是一种根据选择排序的思想,利用堆这种数据结构 所设计的一种排序算法选择排序的思想是什么?:每一趟比较找到这个序列中的最值,拿出来和最前面...原创 2018-12-09 14:07:42 · 1245 阅读 · 0 评论 -
C语言利用快速排序(QuickSort)实现对数组的排序
快速排序是一种交换排序,是对冒泡排序的改进利用冒泡排序的特性,对目标进行分段冒泡#include "stdio.h"int a[6];//定义一个数组,长度为6,实际存放5个元素,/** * 快速排序函数 * @param left 最左边的指针 * @param right 最右边的指针 */void QuickSort(int left,int right){ ...原创 2018-12-05 14:07:05 · 4071 阅读 · 3 评论 -
C语言利用图的邻接矩阵的存储方式实现拓扑排序
C语言利用图的邻接矩阵的存储方式实现拓扑排序在拓扑排序中,我们的对象是有向无环图,这种图是描述工程进行过程的有效工具。比如“课程开课顺序,施工进程,软件开发进程”,我们在使用有向无环图表示他们的时候,我们往往使用顶点表示这些事件中的一个活动,顶点和顶点之间的有向边表示一种活动和活动之间的先后顺序。如上就是一种有向无环图,比如在活动c1进行完成之后,c8、c3才可以开始进行。通常,我们...原创 2018-11-21 19:52:51 · 3837 阅读 · 0 评论 -
图的拓扑排序(邻接表)
#include <stdio.h>#include <stdlib.h>#define Max_Vertex_Num 100#define STACK_SIZE 30typedef struct ArcNode{ int adjvex; //此题用不到 struct ArcNode *nextarc;//下一个节点 int weight...原创 2018-11-21 10:51:07 · 1482 阅读 · 0 评论 -
C语言利用图的邻接矩阵的存储方式实现有向图和无向图的深度优先搜索(DFS)
C语言利用图的邻接矩阵的存储方式实现有向图和无向图的深度优先搜索(DFS)Description图采用邻接矩阵存储,图中顶点数为n(0<n<20),顶点信息为整数,依次为0,1,..,n-1。编写函数,输入图的类型,0:无向图,1:有向图;输入图的顶点数、边数、边的偶对,建立邻接矩阵;编写函数,实现图的深度优先搜索,输出深度优先搜索序列。调用上述函数,从0号顶点出发...原创 2018-11-20 18:46:47 · 9050 阅读 · 1 评论 -
C语言利用图的邻接矩阵的存储方式实现有向图和无向图的广度优先搜索(BFS)
#include <stdio.h>#include <stdlib.h>#define Max_Vetex_Num 100#define MAXSIZE 20#define STACK_SIZE 30typedef struct { int vexs[Max_Vetex_Num]; int arcs[Max_Vetex_Num][Max_Ve...原创 2018-11-20 18:46:20 · 2438 阅读 · 0 评论 -
C语言利用图的邻接表的存储方式实现求有向图的入度和出度以及无向图的度数
Description图采用邻接表为存储结构,图中的顶点数为n(0<n<=20),n个顶点的信息依次为 0,1,...,n-1。编写程序,输入图的类型(0:无向图,1:有向图)、图中顶点数、边数、边的偶对,建立图的邻接表。如果是无向图,计算并输出每个顶点的度;如果是有向图,计算并输出每个顶点的的入度和出度。Input输入:图的类型(0 或1)顶点数,边数顶点...原创 2018-11-11 16:51:16 · 18797 阅读 · 8 评论 -
C语言利用哈夫曼树实现哈夫曼树生成和哈夫曼编码的实现
#include <stdio.h>#include <stdlib.h>#include <string.h>#define MaxSize 50#define MAX 32767 /* int 8位整数*/typedef struct{ char c; /* 字符; */ in...原创 2018-10-26 15:20:06 · 4772 阅读 · 1 评论 -
C语言利用二叉树的操作实现输出二叉树中树叶的个数,1度节点的个数,2度节点的个数
C语言利用二叉树的操作实现输出二叉树中树叶的个数,1度节点的个数,2度节点的个数 欢迎批评...原创 2018-10-18 23:50:22 · 2673 阅读 · 0 评论 -
C语言利用二叉树的操作实现根据给定的字符串生成二叉树并前序、中序、后序输出二叉树。
C语言利用二叉树的操作实现根据给定的字符串生成二叉树并前序、中序、后序输出二叉树。Description根据给定的字符串生成二叉树并前序、中序、后序此二叉树。Input给定一字符串,其中#表示空。例:上图输入为HDB#A##C##G#FE###Output分别输出此二叉树前序、中序和后序。Sample InputHDB#A##C##G#FE###...原创 2018-10-18 23:36:07 · 3775 阅读 · 2 评论 -
C语言利用双向栈的操作实现两个栈共享一段空间并且分别存放奇偶数
C语言利用双向栈的操作实现两个栈共享一段空间并且分别存放奇偶数题目均在sdibt acm oj上AC,参考《深入浅出数据结构和算法》教材,逐个复制即可运行,欢迎评论指正!Description两个栈共享一段存储空间,栈1自左向右增长,栈2自右向左增长,双向栈的存储结构如下:# define MAXSIZE 10typedef struct{ ElemType data[M...原创 2018-10-06 11:22:45 · 5857 阅读 · 4 评论 -
C语言利用队列的操作实现队列中元素的逆置(逆序输出)
C语言利用队列的操作实现队列中元素的逆置(逆序输出) 题目均在sdibt acm oj上AC,参考《深入浅出数据结构和算法》教材,逐个复制即可运行,欢迎评论指正!Description假设队列中有n个整数,编写算法实现将队列中的元素逆置,要求利用栈实现。要求:(1)编写函数分别实现队列初始化、判断队空、判断队满、入队、出队的操作;(2)编写函数分别实现栈的初始化、判断栈...原创 2018-10-06 10:49:04 · 14908 阅读 · 4 评论 -
C语言利用链表实现求两个集合的差集
Description线性表A和B分别表示两个集合A和B(同集合中的元素值各不相同、无序),用带头结点的单链表存储。另辟空间构成一个线性表C,编写算法求C=A和B的差集。 结点结构:typedef struct Node{ int data; struct Node *next;}LNode,*LinkList;要求:(1)编写函数,实现输入数据建立集合单链...原创 2018-12-12 12:41:52 · 6375 阅读 · 1 评论