数据结构
newProxyInstance
这个作者很懒,什么都没留下…
展开
-
LeetCode系列文章
LeetCode系列文章原创 2022-11-17 16:42:31 · 97 阅读 · 0 评论 -
深入浅出数据结构二叉树
深入浅出数据结构二叉树原创 2022-11-17 16:11:11 · 169 阅读 · 0 评论 -
第12周 【项目4 拓扑排序算法验证】
(图4) (程序中graph.h是图存储结构的“算法库”中的头文件,详情请单击链接…)[代码]#include #include #include "graph.h"void TopSort(ALGraph *G){ int i,j; int St[MAXV],top=-1; //栈St的指针为top ArcNode原创 2017-12-21 09:40:53 · 181 阅读 · 0 评论 -
第九周 【项目3 - 利用二叉树遍历思想解决问题】
【利用二叉树遍历思想解决问题】(请利用二叉树算法库) 假设二叉树采用二叉链存储结构存储,分别实现以下算法,并在程序中完成测试: (1)计算二叉树节点个数; (2)输出所有叶子节点; (3)求二叉树b的叶子节点个数 (4)设计一个算法Level(b,x,h),返回二叉链b中data值为x的节点的层数。 (5)判断二叉树是否相似(关于二叉树t1和t2相似原创 2017-11-04 18:40:54 · 253 阅读 · 0 评论 -
第九周 【项目2 - 二叉树遍历的递归算法】
【二叉树遍历的递归算法】 实现二叉树的先序、中序、后序遍历的递归算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 请利用二叉树算法库。[参考解答]#include stdio.h>#include "btree.h"void PreOrder(BTNode *b) //先序遍历的递归算法原创 2017-11-04 18:39:52 · 285 阅读 · 0 评论 -
第九周 【项目1 - 二叉树算法库】
二叉树的链式存储算法库采用程序的多文件组织形式,包括两个文件: 1.头文件:btree.h,包含定义二叉树的链式存储数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef BTREE_H_INCLUDED#define BTREE_H_INCLUDED#define MaxSize 100typedef char ElemType;typedef struc原创 2017-11-04 18:39:09 · 175 阅读 · 0 评论 -
第八周 【项目9-广义表算法库及应用】
广义算法库采用程序的多文件组织形式,包括两个文件: 1.头文件:glist.h,包含定义广义表数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef GLIST_H_INCLUDED#define GLIST_H_INCLUDEDtypedef char ElemType;typedef struct lnode{ int tag;原创 2017-11-02 10:51:00 · 222 阅读 · 0 评论 -
第八周 【项目8-稀疏矩阵的三元组表示的实现及应用】
稀疏矩阵的三元组表示相关的算法库采用程序的多文件组织形式,包括两个文件: 1.头文件:tup.h,包含定义稀疏矩阵的三元组表示数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef TUP_H_INCLUDED#define TUP_H_INCLUDED#define M 6#define N 7#define MaxSize 100 //矩阵中非原创 2017-11-02 10:48:49 · 335 阅读 · 0 评论 -
第五周 【项目2 - 建立链栈算法库】
/* *Copyright ? 2017, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:黎兆阳 *完成日期:2017年10月17日 *版本号:v1.0 * *问题描述:建设链栈算法库 *输入描述: *程序输出:见截图 */ 链栈算法库采用程序的多文件组织形式原创 2017-10-17 14:46:39 · 156 阅读 · 0 评论 -
第五周 【项目1 - 建立顺序栈算法库】
/* *Copyright ? 2017, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:黎兆阳 *完成日期:2017年10月17日 *版本号:v1.0 * *问题描述:建设顺序栈算法库 *输入描述: *程序输出:见截图 */ 1.头文件:sqstack.h,包含原创 2017-10-17 14:35:17 · 151 阅读 · 0 评论 -
第11周 【项目5 - 迷宫问题之图深度优先遍历解法】
【项目 - 迷宫问题之图深度优先遍历解法】 设计一个程序,采用深度优先遍历算法的思路,解决迷宫问题。 (1)建立迷宫对应的图数据结构,并建立其邻接表表示。 (2)采用深度优先遍历的思路设计算法,输出从入口(1,1)点到出口(M,N)的所有迷宫路径。[模型建立] 将迷宫中的每一格作为一个顶点,相邻格子可以到达,则对应的顶点之间存在边相连。 例如,下面的原创 2017-12-16 15:45:26 · 234 阅读 · 0 评论 -
第12周 【项目1 - 验证算法】
最小生成树的普里姆算法:#include #include #include "graph.h"void Prim(MGraph g,int v){ int lowcost[MAXV]; //顶点i是否在U中 int min; int closest[MAXV],i,j,k; for (i=0; i//给lowcost[]和clo原创 2017-12-21 09:34:43 · 173 阅读 · 0 评论 -
第12周 【项目2 Dijkstra算法的验证】
(程序中graph.h是图存储结构的“算法库”中的头文件,详情请单击链接…)#include #include #include "graph.h"#define MaxSize 100void Ppath(int path[],int i,int v) //前向递归查找路径上的顶点{ int k; k=path[i]; if (k==v) return;原创 2017-12-21 09:36:43 · 161 阅读 · 0 评论 -
第12周 【项目 3 Floyd算法验证】
(图3)[Floyd算法实现] (程序中graph.h是图存储结构的“算法库”中的头文件,详情请单击链接…)#include #include #include "graph.h"#define MaxSize 100void Ppath(int path[][MAXV],int i,int j) //前向递归查找路径上的顶点{ int k; k=p原创 2017-12-21 09:39:28 · 159 阅读 · 0 评论 -
第十一周 【项目1 - 图基本算法库】
图的存储结构主要包括邻接矩阵和邻接表,本算法库提供存储结构的定义,以及用于构造图存储结构、不同结构的转换及显示的代码。算法库采用程序的多文件组织形式,包括两个文件: 1.头文件:graph.h,包含定义图数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef GRAPH_H_INCLUDED#define GRAPH_H_INCLUDED#define MAXV原创 2017-12-12 17:50:14 · 141 阅读 · 0 评论 -
学期总结
O: 本学期我们进行了数据结构这门课程,贺老师采取了一种全新的教学模式,翻转课堂,与以往课堂不同的是,翻转课堂将学习模式变成了课下按照学习目标学习(看视频),课上老师精讲知识点。这种模式下学习更加需要主动性和自主性,从而使学习的效果大大提高。R: 反思:本书从线性表,栈和队列,串,递归,数组和广义表,树和二叉树学的还是比较满意。从图形结构开始,和查找以及内排序学的稍有欠缺。I:原创 2017-12-14 22:06:54 · 161 阅读 · 0 评论 -
第11周 项目2 - 操作用邻接表存储的图】
【项目 - 操作用邻接表存储的图】 假设图G采用邻接表存储,分别设计实现以下要求的算法: (1)输出出图G中每个顶点的出度; (2)求出图G中出度最大的一个顶点,输出该顶点编号; (3)计算图G中出度为0的顶点数; (4)判断图G中是否存在边i,j>。 利用下图作为测试用图,输出结果。 提示:(1)分别设计函数实现算法;(2)不要全部实现完再测试,而是实现一个,测原创 2017-12-16 15:41:03 · 184 阅读 · 0 评论 -
第11周 【项目3 - 图遍历算法实现】
1、深度优先遍历——DFS(程序中graph.h是图存储结构的“算法库”中的头文件,详情请单击链接…)#include #include #include "graph.h"int visited[MAXV];void DFS(ALGraph *G, int v){ ArcNode *p; int w; visited[v]=1; printf("%d原创 2017-12-16 15:42:13 · 207 阅读 · 0 评论 -
第11周 【项目4 - 利用遍历思想求解图问题】
1、是否有简单路径? 问题:假设图G采用邻接表存储,设计一个算法,判断顶点u到v是否有简单路径。#include #include #include "graph.h"int visited[MAXV]; //定义存放节点的访问标志的全局数组void ExistPath(ALGraph *G,int u,int v, bool &has){ int w;原创 2017-12-16 15:44:33 · 262 阅读 · 0 评论 -
第八周 【项目7 - 对称矩阵压缩存储的实现与应用】
问题:用压缩形式存储对称矩阵,实现下面的操作并测试 void Init(int *&b);//为N阶对称矩阵初始化存储数据的一维数组bint Value(int b[], int i, int j);//返回存储在b[M]中,对应二维数组A[i][j]的值void Assign(int b[], int e, int i, int j);//将e赋值给对应二维数组元素A[i][j],要存储原创 2017-11-02 10:37:42 · 234 阅读 · 0 评论 -
第八周 【项目6 - 猴子选大王(数组版)】
一群猴子,编号是1,2,3 …m,这群猴子(m个)按照1-m的顺序围坐一圈。从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,最后一只出圈的猴子为大王。输入m和n,输出猴子离开圈子的顺序,从中也可以看出最后为大王是几号猴子。 要求采用数组作为存储结构完成。[参考解答1] 在一个数组中,数组中用1表示猴子在圈中,用0表示猴子已经出圈,数组下标对应与猴子编号对应原创 2017-11-02 10:34:57 · 211 阅读 · 0 评论 -
第五周 【项目 3 - 括号的匹配】
/* *Copyright ? 2017, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:黎兆阳 *完成日期:2017年10月21日 *版本号:v1.0 * *问题描述:括号的匹配 *输入描述: *程序输出:见截图 */ 假设表达式中允许三种括号:圆括号、原创 2017-10-21 21:31:16 · 171 阅读 · 0 评论 -
第四周 【项目 6 - 多项式求和】
/* *Copyright ? 2017, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:黎兆阳 *完成日期:2017年9月28日 *版本号:v1.0 * *问题描述:多项式求和 *输入描述: *程序输出:见截图 */ 1、存储多项式的数据结构 多原创 2017-09-28 21:18:40 · 431 阅读 · 0 评论 -
第四周 【项目5 - 猴子选大王】
/* *Copyright ? 2017, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:黎兆阳 *完成日期:2017年9月27日 *版本号:v1.0 * *问题描述:猴子选大王 *输入描述: *程序输出:见截图 */ 【项目 - 猴子选大王】 一群猴子,原创 2017-09-27 20:14:29 · 351 阅读 · 0 评论 -
第四周 【项目4 - 建设双链表算法库】
/* *Copyright ? 2017, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:黎兆阳 *完成日期:2017年9月26日 *版本号:v1.0 * *问题描述:建设双链表算法库 *输入描述: *程序输出:见截图 */ 算法库包括两个文件: 头文件原创 2017-09-27 20:04:59 · 206 阅读 · 0 评论 -
第四周 【项目3 - 单链表应用】
/* *Copyright ? 2017, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:黎兆阳 *完成日期:2017年9月26日 *版本号:v1.0 * *问题描述:单链表:逆置、连接与递增判断 *输入描述: *程序输出:见截图 */ 单链表:逆置、连原创 2017-09-27 19:48:36 · 306 阅读 · 0 评论 -
第四周 【项目2 - 建设“单链表”算法库】
/* *Copyright ? 2017, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:黎兆阳 *完成日期:2017年9月26日 *版本号:v1.0 * *问题描述:建设“单链表”算法库 *输入描述: *程序输出:见截图 */ 算法库包括两个文件: 头原创 2017-09-26 21:41:44 · 222 阅读 · 0 评论 -
第三周 【项目 4 - 顺序表应用】
/* *Copyright ? 2017, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:黎兆阳 *完成日期:2017年9月27日 *版本号:v1.0 * *问题描述:顺序表应用 *输入描述: *程序输出:见截图 */ 定义一个采用顺序结构存储的线性表,设计原创 2017-09-27 13:03:49 · 197 阅读 · 0 评论 -
第四周 【项目1 - 建立单链表】
/* *Copyright ? 2017, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:黎兆阳 *完成日期:2017年9月26日 *版本号:v1.0 * *问题描述:建立单链表 *输入描述: *程序输出:见截图 */ 问题描述 :定义单链表存储结构,用头插法原创 2017-09-26 19:30:56 · 485 阅读 · 0 评论 -
第三周 【项目2 - 建设“顺序表”算法库】
头文件:list.h,包含定义顺序表数据结构的代码、宏定义、要实现算法的函数的声明; 源文件:list.cpp,包含实现各种算法的函数的定义 。list.h:#ifndef LIST_H_INCLUDED#define LIST_H_INCLUDED#define MaxSize 50typedef int ElemType;typedef struct{原创 2017-09-23 10:27:47 · 196 阅读 · 0 评论 -
第十周 【项目1 - 二叉树算法验证】
(1)层次遍历算法的验证 [参考链接] (2)二叉树构造算法的验证 [参考链接] (3)中序线索化二叉树的算法验证 [参考链接] (4)哈夫曼编码的算法验证 [参考链接]二叉树的层次遍历算法【二叉树的层次遍历算法】 实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。原创 2017-11-09 10:30:23 · 326 阅读 · 0 评论 -
第十周 【项目2 - 用二叉树求解代数表达式】
【项目 - 用二叉树求解代数表达式】 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、/,不加括号,运算数也只是一位的数字字符。本项目只考虑输入合乎以上规则的情况)。请设计算法,(1)根据形如“1+2∗3−4/5”的字符串代表的表达式,构造出对应的二叉树(如图),用后序遍历的思路计算表达式的值时,能体现出先乘除后原创 2017-11-09 10:32:22 · 306 阅读 · 0 评论 -
第七周 【项目1 - 建立顺序环形队列算法库】
顺序环形队列算法库采用程序的多文件组织形式,包括两个文件: 1.头文件:sqqueue.h,包含定义顺序环形队列数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef SQQUEUE_H_INCLUDED#define SQQUEUE_H_INCLUDED#define MaxSize 5typedef char ElemType;typedef struct{原创 2017-10-25 07:39:06 · 308 阅读 · 0 评论 -
第八周 【项目5 - 计数的模式匹配】
【项目 - 计数的模式匹配】 采用顺序结构存储串,编写一个算法计算指定子串在一个字符串中出现的次数,如果该子串不出现则为0。提示:无论BF模式匹配算法,还是KMP算法,都是在找到子串substr后就退出了。解决这个问题,要查找完整个字符串,并将出现的次数记下来。改造这两个算法吧。#include #include "sqString.h"int str_count原创 2017-11-02 10:29:07 · 213 阅读 · 0 评论 -
第八周 【项目4-字符串加密】
【项目-字符串加密】 一个文本串可用事先编制好的字符映射表进行加密。例如,设字符映射表为:abcdefghijklmnopqrstuvwxyzngzqtcobmuhelkpdawxfyivrsj 则字符串“lao he jiao shu ju jie gou”被加密为“enp bt umnp xby uy umt opy”。 设计一个程序,实现加密、解密算法,将输入原创 2017-11-02 10:26:39 · 288 阅读 · 0 评论 -
第八周 【项目3-顺序串算法】
【项目 - 顺序串算法】 采用顺序存储方式存储串,实现下列算法并测试: (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符: void Trans(SqString *&s, char c1, char c2); (2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA。 void Invert(SqString &s) (原创 2017-11-02 10:25:01 · 256 阅读 · 1 评论 -
第八周 【项目2 - 建立链串的算法库】
链串算法库采用程序的多文件组织形式,包括两个文件:1.头文件:liString.h,包含定义链串数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef LISTRING_H_INCLUDED#define LISTRING_H_INCLUDEDtypedef struct snode{ char data; struct snode *next;} L原创 2017-11-02 10:23:02 · 197 阅读 · 0 评论 -
第八周 【项目1 - 建立顺序串的算法库】
顺序串算法库采用程序的多文件组织形式,包括两个文件: 1.头文件:sqString.h,包含定义顺序串数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef SqString_H_INCLUDED#define SqString_H_INCLUDED#define MaxSize 100 //最多的字符个数typedef struct{ char原创 2017-11-02 10:20:31 · 135 阅读 · 0 评论 -
第七周 【项目6 - 停车场模拟】
设停车场是一个可停放n辆汽车的狭长死胡同,南边封口,汽车只能从北边进出(这样的停车场世间少有)。汽车在停车场内按车辆到达时间的先后顺序,最先到达的第一辆车停放在车场的最南端,依次向北排开。若车场内已停满n辆汽车,则后来的汽车只能在门外的候车场上等候,一旦有车开走,则排在候车场上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路(假定停车场内设有供车辆进出的便道,原创 2017-11-02 10:17:19 · 286 阅读 · 0 评论 -
第七周 【项目5 -排队看病模拟】
编写一个程序,反映病人到医院看病,排队看医生的情况。在病人排队过程中,主要重复两件事: (1)病人到达诊室,将病历本交给护士,排到等待队列中候诊。 (2)护士从等待队列中取出下一位病人的病历,该病人进入诊室就诊。 要求模拟病人等待就诊这一过程。程序采用菜单方式,其选项及功能说明如下: (1)排队——输入排队病人的病历号,加入到病人排队队列中。 (2)就诊——原创 2017-11-02 10:14:58 · 430 阅读 · 0 评论