自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 (图6-28)Topological Sort--C语言

int Nv;int Ne;AdjList G;拓扑顺序应该存储在TopOrder[]中,其中TopOrder[i]是结果序列中的第i个顶点。如果图中有一个循环,拓扑排序就不可能成功——在这种情况下,TopSort必须返回false;否则返回true。请注意,拓扑顺序可能不是唯一的,但官方的输入保证了结果的唯一性。

2024-06-28 09:15:24 515

原创 (图6-22)Shortest Path [4]--C语言

int Nv;int Ne;从V到源S的最短距离应该存储在dist[V]中。如果无法从S到达V,则存储-1。如果W是沿着从S到V的最短路径在V之前访问的顶点,则path[V]=W。如果不能从S到达V,则path[S]=-1,并且我们有path[S]=-1。

2024-06-26 18:51:01 846

原创 (图6-21)Shortest Path [3]--C语言

int Nv;int Ne;从V到源S的最短距离应该存储在dist[V]中。如果无法从S到达V,则存储-1。从V到源S的不同最小路径的数量被假定存储在count[V]和count[S]=1中。

2024-06-26 18:46:47 309

原创 (图6-19)Shortest Path [1]--C语言

int Nv;int Ne;AdjList G;从V到源S的最短距离应该存储在dist[V]中。如果无法从S到达V,则存储-1。

2024-06-26 18:42:57 328

原创 (图6-15)邻接表存储图的广度优先遍历--C语言

其中LGraph是邻接表存储的图,定义如下:/* 邻接点的定义 */邻接点下标指向下一个邻接点的指针顶点表头结点的定义边表头指针AdjList是邻接表类型图结点的定义 */PtrToGNode;int Nv;顶点数int Ne;边数AdjList G;邻接表以邻接表方式存储的图类型 */函数BFS应从第S个顶点出发对邻接表存储的图Graph进行广度优先搜索,遍历时用裁判定义的函数Visit访问每个顶点。当访问邻接点时,要求按邻接表顺序访问。

2024-06-26 17:49:47 426

原创 (图6-11)邻接矩阵存储图的深度优先遍历--C语言

其中MGraph是邻接矩阵存储的图,定义如下:PtrToGNode;int Nv;顶点数int Ne;边数邻接矩阵以邻接矩阵存储的图类型 */函数DFS应从第V个顶点出发递归地深度优先遍历图Graph,遍历时用裁判定义的函数Visit访问每个顶点。当访问邻接点时,要求按序号递增的顺序。题目保证V是图中的合法顶点。

2024-06-26 17:47:07 184

原创 (图6-10)Count Connected Components--C语言

int Nv;int Ne;AdjList G;

2024-06-26 17:45:09 339

原创 (图6-9)Strongly Connected Components--C语言

Write a program to find the strongly connected components in a digraph.where Graph is defined as the following:Here void (*visit)(Vertex V) is a function parameter that is passed into StronglyConnectedComponents to handle (print with a certain format) eac

2024-06-26 17:42:25 307

原创 (图6-1)Vertex Degrees--C语言

int Nv;int Ne;AdjList G;

2024-06-26 16:34:07 319

原创 (堆6-6)哈夫曼树及哈夫曼编码--C语言

其中 upbound 编号,HT是哈夫曼树,HC是哈夫曼编码,w是权值,n是叶子节点个数。

2024-06-26 15:46:46 122

原创 (堆6-3)Percolate Up and Down--C语言

int Size;

2024-06-26 15:20:32 159

原创 (堆6-1)AVL Insertion--C语言

int Key;int Height;

2024-06-26 15:18:15 223

原创 (链表6-10)学生成绩链表处理--C语言

函数createlist利用scanf从输入中获取学生的信息,将其组织成单向链表,并返回链表头指针。链表节点结构定义如下:学号姓名成绩指向下个结点的指针输入为若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束。函数deletelist从以head为头指针的链表中删除成绩低于min_score的学生,并返回结果链表的头指针。

2024-06-26 14:54:35 297

原创 (链表6-13)链表拼接--C语言

其中list1和list2是用户传入的两个按data升序链接的链表的头指针;函数mergelists将两个链表合并成一个按data升序链接的链表,并返回结果链表的头指针。

2024-06-26 14:37:33 149

原创 (链表6-16)求链表的倒数第m个元素--C语言

其中List结构定义如下:PtrToNode;存储结点数据指向下一个结点的指针定义单链表类型 */L是给定的带头结点的单链表;函数Find要将L的倒数第m个元素返回,并不改变原链表。如果这样的元素不存在,则返回一个错误标志ERROR。

2024-06-26 14:14:08 216

原创 (链表6-8)共享后缀的链表--C语言

其中List结构定义如下:PtrToNode;存储结点数据指向下一个结点的指针定义单链表类型 */L1和L2都是给定的带头结点的单链表。函数Suffix应返回L1和L2的公共后缀的起点位置。

2024-06-26 14:01:34 290

原创 (二叉树及其遍历6-3)先序输出叶结点--C语言

其中BinTree结构定义如下:函数PreorderPrintLeaves应按照先序遍历的顺序输出给定二叉树BT的叶结点,格式为一个空格跟着一个字符。

2024-06-25 13:27:02 130

原创 (二叉树及其遍历6-2)二叉树的遍历--C语言

其中BinTree结构定义如下:要求4个函数分别按照访问顺序打印出结点的内容,格式为一个空格跟着一个字符。

2024-06-25 13:23:33 212

原创 (二叉树及其遍历6-1)求二叉树高度--C语言

其中BinTree结构定义如下:要求函数返回给定二叉树BT的高度值。

2024-06-25 12:30:50 175

原创 出栈序列的合法性--C语言

给定一个最大容量为 m 的堆栈,将 n 个数字按 1, 2, 3, …, n 的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定 m=5、n=7,则我们有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。

2024-06-24 13:33:59 104

原创 汉诺塔的非递归实现--C语言

借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。

2024-06-24 13:17:38 115

原创 堆栈模拟队列--C语言

设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数:int IsFull(Stack S):判断堆栈S是否已满,返回1或0;int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0;void Push(Stack S, ElementType item ):将元素item压入堆栈S;ElementType Pop(Stack S ):删除并返回S的栈顶元素。

2024-06-23 21:32:33 141

原创 栈操作的合法性--C语言

假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。

2024-06-23 21:21:57 281

原创 (栈6-2)另类堆栈--C语言

其中Stack结构定义如下:Data;存储元素的数组栈顶指针堆栈最大容量 */注意:如果堆栈已满,Push函数必须输出“Stack Full”并且返回false;如果队列是空的,则Pop函数必须输出“Stack Empty”,并且返回ERROR。

2024-06-23 21:14:27 128

原创 (栈6-1)在一个数组中实现两个堆栈--C语言

其中Tag是堆栈编号,取1或2;MaxSize堆栈数组的规模;Stack结构定义如下:注意:如果堆栈已满,Push函数必须输出“Stack Full”并且返回false;如果某堆栈是空的,则Pop函数必须输出“Stack Tag Empty”(其中Tag是该堆栈的编号),并且返回ERROR。

2024-06-23 21:09:13 198

原创 (链表6-4)单链表逆转--C语言

其中List结构定义如下:PtrToNode;存储结点数据指向下一个结点的指针定义单链表类型 */L是给定单链表,函数Reverse要返回被逆转后的链表。

2024-06-23 15:28:11 192

原创 (散列查找6-2)分离链接法的删除操作函数--C语言

其中HashTable是分离链接散列表,定义如下:HashTable;散列表类型散列表结点定义表的最大长度List Heads;指向链表头结点的数组 */函数Delete应根据裁判定义的散列函数Hash( Key, H->TableSize )从散列表H中查到Key的位置并删除之,然后输出一行文字:Key is deleted from list Heads[i],其中Key是传入的被删除的关键词,i是Key所在的链表的编号;最后返回true。

2024-06-21 21:39:20 235

原创 (散列查找6-1)线性探测法的查找函数--C语言

其中HashTable是开放地址散列表,定义如下:#define MAXTABLESIZE 100000 /* 允许开辟的最大散列表长度关键词类型用整型散列地址类型数据所在位置与散列地址是同一类型散列单元状态类型,分别对应:有合法元素、空单元、有已删除元素散列表单元类型存放元素单元状态 */HashTable;散列表类型散列表结点定义表的最大长度 */CellCells;存放散列单元数据的数组 */

2024-06-21 15:05:07 403

原创 (二叉搜索树7-1)是否同一棵二叉搜索树--C语言

给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。

2024-05-11 20:54:02 262

原创 (二叉搜索树6-12)The Kth Largest X in BST--C语言

用中序遍历得到序列,因为是二叉搜索树,则该序列一定是递增的,所以直接在序列中找输入的数,如果找到了直接返回(count-下标),count是序列的总数,因为序列从0开始;如果没找到直接返回0。

2024-04-15 15:38:27 409

原创 (二叉搜索树6-11)The Kth Smallest X in BST--C语言

用中序遍历得到序列,因为是二叉搜索树,则该序列一定是递增的,所以直接在序列中找输入的数,如果找到了直接返回(下标-1),因为序列从0开始;如果没找到直接返回0。

2024-04-15 15:35:54 464

原创 (二叉搜索树6-10)The Kth Largest in BST--C语言

用中序遍历得到序列,因为是二叉搜索树,则该序列一定是递增的,所以直接返回序列中倒数第k个数(下标为count-k),count为序列总数。

2024-04-15 15:29:21 1614

原创 (二叉搜索树6-9)The Kth Smallest in BST--C语言

用中序遍历得到序列,因为是二叉搜索树,则该序列一定是递增的,所以直接返回序列中第k个数(下标为k-1)。

2024-04-15 15:20:13 1267

原创 (二叉搜索树6-8)CheckBST[3]--C语言

用中序遍历得到序列,判断是否二叉树就直接判断序列是否递增,如果不是搜索二叉树,就求树的高度;如果是,则输出倒数第k个数,即为第k大的数。

2024-04-15 15:09:53 1640

原创 (二叉搜索树6-7)CheckBST[2]--C语言

用中序遍历得到序列,判断是否二叉树就直接判断序列是否递增,如果不是搜索二叉树,就求树的高度;如果是,则输出第k个数,即为第k小的数。

2024-04-15 15:06:17 567

原创 (二叉搜索树6-6)CheckBST[1]--C语言

用中序遍历得到序列,判断是否二叉树就直接判断序列是否递增,如果不是搜索二叉树,就求树的高度;如果是,则输出倒数第k个数,即为第k大的数。

2024-04-15 15:02:19 608

原创 Wifi密码(15分)--C语言

下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成 wifi 的密码。这里简单假设每道选择题都有 4 个选项,有且只有 1 个正确答案。

2024-04-14 20:00:15 266 1

原创 图像过滤(15分)--C语言

图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。

2024-04-14 19:40:55 304 1

原创 判断题(15分)--C语言

判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。

2024-04-14 19:35:37 96 1

原创 组合数的和(15分)--C语言

给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。

2024-04-14 19:32:40 98 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除