随笔分类 - DataStruct
摘要:实验内容 【问题描述】对一含有n个整数的数组,使用堆排序将其由小到大排序。【输入形式】第一行为元素个数n,第二行为n个整数(以空格隔开)。【输出形式】输出n个整数(以空格隔开)【样例输入】 6 43 2 56 1 22 9【样例输出】 1 2 9 22 43 56 #include <stdio.h
阅读全文
摘要:实验内容 1.采用邻接矩阵表示法创建下图并输出它。 2. 用迪杰斯特拉算法求下图0为源点到其余各顶 #include <stdio.h> #include <stdlib.h> #define MaxSize 100 typedef struct { int vexs[MaxSize]; int a
阅读全文
摘要:实验内容 1.采用邻接矩阵表示法创建下图并输出它。 2. 对下图进行深度优先搜索遍历(1为起始点)。 #include<stdio.h> #include<stdlib.h> #define MaxSize 100 typedef struct { int vex[MaxSize]; int acr
阅读全文
摘要:实验内容 构建哈夫曼树,并输出其对应的哈夫曼编码 #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct { int weight; int parent, lchild, rchild; }HTNode,*Huf
阅读全文
摘要:实验内容 算术表达式中右括号和左括号匹配的次序正好符合后到括号要最先被匹配的“后进先出”堆栈操作特点,因此可以借用一个堆栈来进行判断。 具体方法: ⑴ 顺序扫描算术表达式(表现为一个字符串); ⑵ 当遇到三种类型的左括号时,让该括号进栈; ⑶ 当遇到某一种类型的右括号时,比较当前栈顶括号是否与之匹配
阅读全文
摘要:实验内容 定义一个包含学生信息(学号,姓名,成绩)的链表,使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息; (2) 逐个显示学生表中所有学生的相关信息; (3) 根据姓名进行查找,返回此学生的学号和成绩; (4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩); (5) 给定
阅读全文
摘要:实验内容 定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息; (2) 逐个显示学生表中所有学生的相关信息; (3) 根据姓名进行查找,返回此学生的学号和成绩; (4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩); (5) 给
阅读全文
摘要:1.深度优先遍历 void dfs(Graph G,int i) { visted[i] = 1; for (int j = 0; i < G.vexnum; j++) { if (G.arcs[i][j]==1&&visted[j]!=1) { dfs(G,j); } } } 2.广度优先遍历 v
阅读全文
摘要:图的应用非常广泛,下面就说说图的最短路径问题,使用的是Dijkstra, 其实就是将距离这个点最近的邻接点收进来,然后更新与其他点的距离,然后再收其他点 void Dijstra(Graph *G,int v0){ int S[Maxsize] = {0}; int dist[Maxsize]; i
阅读全文
摘要:图就是多对多的关系,每个结点都可能与多个结点有关系,结点之间的关系是任意的,图中任意两个结点都可以相关,所以图的应用极其广泛, 而研究某一个结构上面的操作,就先要让他可以在计算机中表示,即怎么存储他,由于图的结构比较复杂,任意两个结点之间都可能存在关系, 所以无法使用物理位置来表示元素之间的关系,所
阅读全文
摘要:1.非递归的前序遍历 void inorderTravse(BiTree root) { Stack s = CreateStack(); BiTree T = root; while (T || !isEmpty(s)) { while (T) { printf("%d", T->data); p
阅读全文
摘要:1.二叉树的层次遍历 void levelTravse(BiTree root) { if (root) { Queue q = CreateQueue(); inQueue(q, root); while (emptyQueue(q)) { BiTree e = outQueue(q); prin
阅读全文
摘要:树就是一对多的关系,树是非线性结构,他是由递归定义的,树是由一个根结点和子树所构成的,树中最常见的就是二叉树, 下面讨论的都是二叉树,二叉树是由根结点和左右子树构成的,而研究某一个结构上面的操作,就先要让他可以在计算机中表示,即怎么存储他,树有顺序存储,也有链式存储, 因为顺序存储二叉树后续操作不怎
阅读全文
摘要:串其实也是线性结构,只是串的内容必须是字符,所以他又有他的不同的应用,最常见的应该是串的模式匹配, 下面就来说说模式匹配中的BF算法,其实就是一个一个向后面匹配,如果没有成功,那么回到主串刚开始的字符后面一个字符开始新的一次匹配,之后重复这个操作,如果匹配成功,那么返回第一个字符的位置,如果不成功,
阅读全文
摘要:队列(Queue)其实也是线性结构,但只是在操作上有点不一样,队列的特点,先进先出(FIFO),所以他也有不同的应用,生活当中队列的例子有很多,比如排队啊,很多问题都是可以用队列来解决, 下面来说说队列的定义和队列上面的相关操作, 1.定义队列的节点 #include <stdio.h> #incl
阅读全文
摘要:栈(Stack)其实也是线性结构,但只是在操作上有点不一样,栈的特点,后进先出(FILO),所以他也有不同的应用,比如进制转换啊,括号匹配问题啊,表达式求值问题啊,很多问题都是可以用栈来解决, 下面来说说栈的定义和栈上面的相关操作, 1.定义栈的节点 #include <stdio.h> #incl
阅读全文
摘要:线性结构的逻辑结构就是一对一的关系,除了首尾节点外每个节点都有唯一的前驱和唯一的后继, 线性结构中最常见的就是线性表,而研究某一个结构上面的操作,就先要让他可以在计算机中表示,即怎么存储他,线性表有顺序存储,也有链式存储, 上次说了顺序存储,有的小伙伴会发现,这个顺序存储插入,删除操作也太麻烦了吧,
阅读全文
摘要:线性结构的逻辑结构就是一对一的关系,除了首尾节点外每个节点都有唯一的前驱和唯一的后继 线性结构中最常见的就是线性表,而研究某一个结构上面的操作,就先要让他可以在计算机中表示,即怎么存储他,线性表有顺序存储,也有链式存储, 下面来说说线性表的顺序存储和用顺序储存后对线性表的相关操作,顺序存储其实就是利
阅读全文
摘要:因为后面要学习数据结构(DataStruct)需要使用到结构体(Struct),所以我们先复习一下结构体(因为好久没写c语言了,有点忘记了,所以想简单的复习一下) struct Var { 基本数据类型 var1; 基本数据类型 var2; 基本数据类型 var3; }; 利用struct关键字定义
阅读全文

浙公网安备 33010602011771号