C语言数据结构
zhang_wenshuo
这个作者很懒,什么都没留下…
展开
-
实验四:无向图最短路径搜索
1.实验目的熟练掌握图的操作,掌握 Dijkstra 算法的原理。2.实验要求输入:通过命令行参数输入起点和终点的位置名称。输出: (1)命令行参数不正确输出ERROR_01;(2)获取最短路径失败时输出ERROR_02;(3)获取最短路径成功时输出路径长度。实际地图:1 右图为校内知名建筑物示意平面图(其中“传送门”用于增加网络复杂度),以边表示建筑物间的路径,各条路径上方的数字表示路径长度。2 针对该图进行构建数据结构和算法,通过命令行...原创 2021-12-12 00:27:20 · 3459 阅读 · 1 评论 -
实验三:基于哈夫曼树的编码/译码
1.实验目的掌握二叉树的生成、遍历等操作,及哈夫曼编码/译码的原理。2.实验要求输入:通过命令行参数输入字符串(长度>=20)和码字。输出: (1)命令行参数不正确输出ERROR_01;(2)编码失败输出ERROR_02;(3)译码失败输出ERROR_03;(4)在同一行中输出编码结果和译码结果,中间使用空格隔开。简明实例:输入:“stupid is as stupid does” “101101001110”输出:“00111011111011100011..原创 2021-12-12 00:23:14 · 1639 阅读 · 2 评论 -
实验二:使用KMP算法实现字符串的匹配
1.实验目的熟练的掌握数据结构中串这种数据类型;学会使用相较于朴素的模式识别算法更加先进的KMP算法进行识别和匹配。同时,在数据结构试验之中熟悉和了解串的性质和使用方法。2.实验要求输入:通过命令行参数输入原字符串和模式字符串。输出: (1)命令行参数不正确输出字符串ERROR_01;(2)如果查找到模式串,输出关键字在字符串中的位置(计数从1开始);(3)如果未找到模式串则输出-1 。实例: 输入:“select * ...原创 2021-12-12 00:20:28 · 2754 阅读 · 0 评论 -
树的三种遍历机器顺序,备忘用,转载未经授权(这位先生的)
(代码垃圾(准代码菜鸟)这位先生的树的三种遍历方式以及理解_qq1084235321的博客-CSDN博客_树的遍历三种顺序--------每次想用都忘记,不如记一下前序遍历:根->左子树->右子树中序遍历:左子树->根->右子树后序遍历:左子树->右子树->根其中遍历子树的时候,子树的遍历方式也是按大树的遍历方式来进行的,比如我采用前序遍历,遍历顺序是根左右,那么我每颗子树遍历节点的时候也是按照父亲-左-右这种方式来遍历,如下图前序遍历转载 2021-11-23 22:50:59 · 84 阅读 · 0 评论 -
C语言实现计算器含有批注,编译通过,可以正常使用。数据结构上机实验
要求实现加减乘除,乘幂,小数,大数,小括号,中括号等计算。要求分析ERROR类型(01 参数错误 02 格式错误 03 数学错误(逻辑))。要求不出现魔鬼数字,path和文件名要求为英文,使用宏定义。要求使用argv和aggc进行输入,即使用命令提示符进行输入。思路为:针对小数和大数,使用数组先行储存,转成double或直接在数组上操作。 针对基本运算,使用栈,判断优先级并进行操作(参见清华大学数据结构) 针对错误...原创 2021-10-27 15:32:59 · 515 阅读 · 0 评论 -
KMP算法的代码,包含了一部分朴素的识别代码。使用next数组。C语言.cpp文件,需要轻度debug。
//线性表的使用及函数定义//KMP算法如果不想了解理论可以看看这个://https://blog.csdn.net/weixin_46007276/article/details/104372119?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163490584616780264080014%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257.原创 2021-10-22 23:26:09 · 108 阅读 · 0 评论 -
顺序字符串实现,含有批注,需debug .cpp文件,C语言
//线性表的使用及函数定义#include<stdio.h>#include<malloc.h>#define _CRT_SECURE_NO_WARNINGS_#define OK 2#define ERROR -1#define TRUE 1#define FALSE 0#define OVERFLOW -2#define Status int//用数值返回状态,状态值如上所示。#define ElemType char//串一半都是字符串。#define..原创 2021-10-22 20:29:30 · 95 阅读 · 0 评论 -
SQeueue 循环线性队列,不允许超过maxsize,需debug,有批注,C语言.cpp文件
因为其属于只动前后的部分,并不用大规模移动,所以使用线性队列,放弃链式队列(因为会占用大量的链式存储空间。)//使用.cpp文件,编写队列,本出实现循环队列queue。//类似于会计的 LIFO 原则。#include<stdio.h>#include<malloc.h>#define OVERFLOW -1#define ERROR -2#define _CRT_SECURE_NO_WARNINGS_#define ElemType char#defin原创 2021-10-22 14:20:24 · 173 阅读 · 0 评论 -
线性栈。C语言源代码(有备注,但需要轻度debug).cpp文件
//创建线性栈#include<stdio.h>#include<malloc.h>#define _CRT_SECURE_NO_WARNINGS_#define StackSize 100//定义栈的长度#define StackIncrease 10//定义追加长度#define ElemType char//定义宏变量元素类型#define Status int//函数返回状态#define OK 2//返回值为0时认为其正常分配函数#define OVER.原创 2021-10-21 20:53:03 · 151 阅读 · 0 评论 -
循环链表及其常用函数(带注释,备忘,上半部分)有上部没下部版本(不想写了)
//循环链表//即:位序概念已经淡化了,使用在线性表中的位置概念来反映情况。//本文之中所有的数据均使用NULL代替#define _CRT_SECURE_NO_WARNINGS_#define ElemType int#define OVERFLOW -2#include<stdio.h>#include<math.h>typedef struct node { ElemType data;//方便之后修改数据 struct node* next;//...原创 2021-10-10 22:48:59 · 131 阅读 · 0 评论 -
单向链表,C语言.cpp文件,需轻度debug
//单向链表#define _CRT_SECURE_NO_WARNINGS_#include<stdio.h>#include<math.h>#define ElemType int#define temp_ElemType d//这个在使用的时候需要更改#define ERROR -1typedef struct po { ElemType data; Node *next;}Node ;//定义单向链表的结构体Node* Init_List() {原创 2021-10-08 23:58:25 · 80 阅读 · 0 评论 -
C语言实现线性表-(完整代码,个人备忘录,少批注版本)
#C语言实现链表//线性表,C语言#define _CRT_SECURE_NO_WARNINGS_#include<stdio.h>#include<math.h>#define Init_Length 100#define Add_Up_Length 10#define ElemType inttypedef struct L { ElemType* base; int Current_Length; int Current_Number;}List;/原创 2021-10-08 21:42:08 · 331 阅读 · 0 评论