数据结构与算法
你跺你也麻.
欢乐编程,best编程
展开
-
按列序递增进行转置
#include <stdio.h>#include <stdlib.h>#define MAX_LEN 100/*按列序递增进行转置的思想就是:对于原矩阵的某一列一次扫描,按行序从大到小存到三元组,这样可以实现,在新的矩阵中,行序递增(原矩阵列序),且某一行的列序递增。*/typedef struct{ int r,c,value;}Tri;ty...原创 2019-01-17 12:17:04 · 930 阅读 · 0 评论 -
迷宫问题(BFS最短路径)
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#define MAX_LEN 101typedef struct //横纵坐标{ int x; int y;}point;int maze[MAX_LEN][MAX_LEN]=...原创 2019-01-15 00:43:28 · 2518 阅读 · 0 评论 -
链表的维护(家电营业系统)
读入文件List.txt:名称 品牌 价格 数量phone huawei 2000.000000 35clothes supreme 900.000000 8shoes lining 800.000000 10fan haier 500.000000 5 #in...原创 2019-01-15 00:41:18 · 997 阅读 · 0 评论 -
哈夫曼树(c语言实现)
待压缩的读入文件:Compress_read.txt压缩后的写入文件:Compress_write.txt解压缩的写入文件:Decompress_write.txt以上文件请自行创建,其中待压缩文本放在Compress_read.txt中即可编译运行。#include <stdio.h>#include <stdlib.h>#include <s...原创 2019-01-15 00:38:02 · 1065 阅读 · 0 评论 -
工程安排(拓扑排序)
读入文件project.txt:8101 2 3 4 5 6 7 81,2,6,A1,5,2,B2,3,3,C2,4,5,D2,5,3,E3,7,2,F4,7,3,G5,6,4,H6,7,2,I7,8,2,J#include <stdio.h>#include <stdlib.h>#include <string.h>#d...原创 2019-01-15 00:32:40 · 496 阅读 · 0 评论 -
败者树(多路归并)
已知顺串 R1[10,15,16],R2[9,20,38].R3[20,20,30], R4[6,15,25],R5[8,15,20],R6[9,11,16], R7[90,100,110],R8[17,18,20]建立败者树编程工具:Dev-C++读入文件losertree.txt:8310 15 1639 20 38320 20 3036 15 2538 15 ...原创 2019-01-15 00:30:08 · 1502 阅读 · 0 评论 -
百岛湖造桥(Kruskal)
#include <stdio.h>#include <stdlib.h>#include <math.h>int begin[100], end[100],father[100],bridgenum,islandnum;double bridge[5000];void Sort() //对桥的长度进行升序排序{ int i,j; ...原创 2019-01-15 00:24:28 · 593 阅读 · 0 评论 -
BST插入(建立)、删除、查找和排序
实验要求:设计BST 的左右链存储结构,并实现BST插入(建立)、删除、查找和排序算法。 实现折半查找算法。 实验比较:设计并产生实验测试数据,考察比较两种查找方法的时间性能,并与理论结果进行比较。以下具体做法可作为参考:第1组测试数据: n=1024个已排序的整数序列(如0至2048之间的奇数);第2组测试数据:第1组测试数据的随机序列。 按上述两组序列的顺序作为输入顺序,分别建立BST...原创 2019-01-15 00:21:08 · 2417 阅读 · 0 评论 -
图的建立与遍历(递归和非递归)
实验要求:1.分别实现图的邻接矩阵、邻接表存储结构的建立算法,分析和比较各建立算法的时间复杂度以及存储结构的空间占用情况;2.实现图的邻接矩阵、邻接表两种存储结构的相互转换算法;3.在上述两种存储结构上,分别实现图的深度优先搜索(递归和非递归)和广度优先搜索算法。并以适当的方式存储和显示相应的搜索结果(深度优先或广度优先生成森林(或生成树)、深度优先或广度优先序列和编号);4.分析...原创 2019-01-15 00:17:02 · 1736 阅读 · 2 评论 -
二叉树结构的建立与遍历
实验项目:1.编写建立二叉树的二叉链表存储结构(左右链表示)的程序,并以适当的形式显示和保存二叉树; 2.完成二叉树的7种遍历操作3.给定一个二叉树, 编写算法完成下列应用: (1)判断其是否为完全二叉树;(2)求二叉树中任意两个结点的公共祖先。输入示例(空子树以'#'表示):ab##c## #include <stdio.h>#include ...原创 2019-01-15 00:12:00 · 1347 阅读 · 1 评论 -
逆波兰表达式求值(C语言实现)
实验项目:从文本文件输入任意一个语法正确的(中缀)表达式,显示并保存该表达式。 利用栈结构,把上述(中缀)表达式转换成后缀表达式,并显示栈的状态变化过程和所得到的后缀表达式。 利用栈结构,对上述后缀表达式进行求值,并显示栈的状态变化过程和最终结果。备注:读文件的输入为(以'#'起始和结尾):#10+13*10+5%2+2^3+(5+6)*7##include <stdio...原创 2019-01-15 00:05:41 · 19142 阅读 · 3 评论 -
KMP字符串匹配(C语言)
#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX 4#define MAX_LEN 100typedef struct strand{ int length; char data[MAX]; struct strand *next;}STR;...原创 2019-01-17 12:43:14 · 520 阅读 · 0 评论 -
优先队列(堆)
设计一个程序模仿操作系统的进程管理问题,进 程服务按优先级高的先服务,同优先级的先到先服务的管理 原则。设文件task.txt中存放了仿真进程服务请求,其中第 一列是进程任务号,第二列是进程的优先级。1 302 203 404 205 0#include <stdio.h>#include <stdlib.h>#define MAX_LEN 1...原创 2019-01-17 12:41:18 · 338 阅读 · 0 评论 -
跳跃表
#include<stdio.h>#include<stdlib.h>#include<time.h>#define MAX_LEN 2000typedef struct node{ int key; int value; struct node* next[];}Node;typedef struct list{ ...原创 2019-01-17 12:29:13 · 114 阅读 · 0 评论 -
快速转置
#include <stdio.h>#include <stdlib.h>#define MAX_LEN 100/*按列序递增进行转置的思想就是:对于原矩阵的某一列一次扫描,按行序从大到小存到三元组,这样可以实现,在新的矩阵中,行序递增(原矩阵列序),且某一行的列序递增。*/typedef struct{ int r,c,value;}Tri;ty...原创 2019-01-17 12:19:09 · 1066 阅读 · 0 评论 -
农夫过河问题
#include <stdio.h>#include <stdlib.h>#define MAX_LEN 30typedef struct //顶点{ int farmer; int wolf; int sheep; int vegetable;}Vertexdata;int visited[MAX_LEN] = {0}; //设置访问...原创 2019-01-17 12:14:44 · 1377 阅读 · 1 评论