c/c++
快乐键盘侠
这个作者很懒,什么都没留下…
展开
-
迷宫求解问题
题目描述用一个m×n的矩阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对给定的迷宫,求出找到的第一条从入口到出口的通路,或得到没有通路的结论。我们指定:(1) 迷宫的入口为矩阵的左上角(1,1),迷宫的出口为右下角(m,n);(2) 路径的探索顺序依次为"东南西北"(即:右下左上)。输入第一行输入两个整数,空格间隔,分别表示矩阵的行数m和列数n;接下来的连续m行,输入迷宫矩阵的信息。输出求得的通路以三元组(i,j,d)的形式输出。其中:i,j指示迷宫的一个坐标;d表示走原创 2021-04-06 15:11:21 · 2174 阅读 · 1 评论 -
求解马鞍点问题
题目描述若矩阵An*m中某个元素A[i][j]是矩阵第i行中值最小的元素,同时又是第j列中值最大的元素,则称元素A[i][j]是矩阵中的一个马鞍点。设以二维数组存储矩阵,编写算法求矩阵A中的所有马鞍点,算法的时间复杂度要尽量的低。注意当最大值(最小值)并列相等时,会出现多鞍点的情况。输入第一行输入矩阵的总行数M和总列数N,以空格间隔。之后的M行,依次输入矩阵的各行数据,以空格间隔。输出若有马鞍点,则以行序为主序,依次输出各个马鞍点。每个马鞍点以(row,col,val)的形式输出,其中row原创 2021-04-06 15:07:37 · 2481 阅读 · 0 评论 -
给定权值,哈弗曼编码、译码
题目描述假设某通信报文的字符集由A,B,C,D,E,F这6个字符组成,它们在报文中出现的频度(频度均为整数值)。(1)构造一棵哈弗曼树,依次给出各字符编码结果。(2)给字符串进行编码。(3)给编码串进行译码。规定:构建哈弗曼树时:左子树根结点权值小于等于右子树根结点权值。生成编码时:左分支标0,右分支标1。输入第一行:依次输入6个整数,依次代表A,B,C,D,E,F的频度,用空格隔开。第二行:待编码的字符串第三行:待译码的编码串输出前6行依次输出各个字符及其对应编码,格式为【字符:原创 2021-04-06 10:05:42 · 1525 阅读 · 0 评论 -
实现求最小生成树的克鲁斯卡尔算法(Kruskal)
题目描述已知有权无向图G,利用克鲁斯卡尔算法求出该图的最小生成树。输入第一行输入两个正整数n和m(空格间隔), 分别表示图G的顶点总数和边的总数。第二行连续输入n个字母,分别表示n个顶点的信息。第三行连续输入m条边的信息,每条边的输入格式为(v1,v2,w),表示一条关联顶点v1和v2的边,其权值为w。输出按边上权值由小到大的顺序依次输出各个边。输出边的时,若该边被选中,则在该边信息之后输出1,否则输出0。例如:(v1,v2,w,1) 表示与顶点v1和v2相关联的边,权值为w,被选中。原创 2021-04-06 09:57:09 · 1742 阅读 · 1 评论 -
C语言-求二叉树非叶子节点个数
代码#include<stdlib.h>#include<stdio.h>typedef struct Node{ char data; struct Node* Lchild; struct Node* Rchild;}BiTNode, *Bitree;void creatFirst(Bitree *T){ char ch; ch = getchar(); if (ch == '#') *T = NULL; else { *T = (Bit原创 2021-04-06 01:17:31 · 3393 阅读 · 0 评论 -
C语言-二叉树的建立以及前,中,后序遍历
代码#define MAXSIZE 100#include<stdlib.h>#include<stdio.h>typedef struct Node{ char data; struct Node* Lchild; struct Node* Rchild;}BiTNode, *Bitree;typedef struct stack{ Bitree data[MAXSIZE]; int top;}Seqstack;// 初始化栈Seqstack*原创 2021-04-06 01:13:58 · 176 阅读 · 0 评论 -
C语言-实现扫雷游戏
源码game.h#pragma once#include<stdlib.h>#include<stdio.h>#include<time.h>#define ROW 9#define COL 9#define ROWS ROW+2#define COLS COL+2#define EASY_MINE 10//初始化棋盘void InitBoard(char board[ROWS][COLS], int row, int col, char原创 2021-04-06 00:54:59 · 86 阅读 · 0 评论 -
C语言-约瑟夫环问题
题目n个人排成一圈,按顺时针方向依次编号1,2,3…n。从编号为1的人开始顺时针"一二三…"报数,报到m的人退出圈子。这样不断循环下去,圈子里的人将不断减少。最终一定会剩下一个人。问依次出圈人的顺序为什么?代码#include <stdio.h> #include <stdlib.h>typedef struct node{ int num; int mima; struct node *next;} node, *linklist;linklist tai原创 2021-04-06 00:44:02 · 1843 阅读 · 0 评论 -
C语言数据结构整理-图的创建-求度-深度优先遍历-广度优先遍历
数据结构整理-图的创建-求度-深度优先遍历-广度优先遍历图的创建定义邻接矩阵的数据类型用邻接矩阵创建图求有向图的出度,入度求出度求入度图的遍历深度优先遍历广度优先遍历测试数据及其结果总体代码如下图的创建定义邻接矩阵的数据类型typedef struct{ int arcs[MAXVEX][MAXVEX]; //边(或弧)信息 char vex[MAXVEX]; //顶点信息 int vexnum; //顶点数目 int arcnum;原创 2020-12-02 22:23:18 · 445 阅读 · 0 评论 -
C语言在有序的数列中插入若干个数,使数列在插入过程中始终保持有序
C语言在有序的数列中插入若干个数,使数列在插入过程中始终保持有序一个有序的数列中插入若干个数,这个数列依然是有序的。代码如下:#include<stdio.h>int main(){ int a[150]={12,21,32,45,51,69,78,84,90,96}; int b[100]; int n,i,j,k; printf("输入要插入数的个数:");...原创 2019-04-10 19:36:37 · 5406 阅读 · 0 评论