数据结构
要告别理想怎算活過
这个作者很懒,什么都没留下…
展开
-
简单的希尔排序
1、输入N和N个整数关键字;2、完成希尔排序,并输出排序结果,输出结果每个关键字之间用一个空格分隔。例如:【输入】74 2 6 1 8 9 3【输出】1 2 3 4 6 8 9#include <stdio.h>#include <stdlib.h>void ShellSort(int a[], int n) { int i, j, d; d = n / 2; while(d >= 1) { for(i = d原创 2020-11-01 14:13:26 · 312 阅读 · 0 评论 -
图的存储和遍历实验
一、实验目的1、掌握图的邻接矩阵和邻接表的存储和表示。2、掌握图的一些基本应用。3、掌握图的遍历方法。4、掌握图的最小生成树算法。5、掌握图的最短路径 Dijkstra 算法。二、实验内容1、采用邻接表存储图(要求完成)。2、输入图并构造邻接矩阵(要求完成)。3、采用深度优先和广度优先遍历图(要求完成)。#include <stdio.h>#include <stdlib.h>#define Maxint 10000 //表示极大值#define MVN原创 2020-11-01 14:05:55 · 2642 阅读 · 0 评论 -
最小生成树
图的最小生成树算法的实现(Prim算法)一、实验目的1.熟悉连通图最小生成树的算法实现。2.掌握带权图的存储结构和处理方法。二、实验内容1、连通图的最小代价生成树成为最小生成树。2、采用图的邻接矩阵存储结构来存储边上的权值。3、图中顶点最大数定义为9个,输入顶点个数为9个以内整数。4、顶点输入格式,如果是三个顶点“A,B,C”。5、边的输入格式,如AB,AB边上的权重为3,为“A,B,3”。6、以输入3个顶点3条边为例,从第1个顶点出发生成最小树,并按照发现最小边的先后顺序输出。三、实原创 2020-11-01 13:51:00 · 508 阅读 · 1 评论 -
二叉树的构造和遍历
一、实验目的1、掌握二叉树基本概念。2、掌握二叉树建立方法。3、掌握二叉树基本操作和遍历方法。二、实验内容1、给定一棵二叉树的先序和中序序列,以单个字母表示一个节点,用一个字符串表示的一种序列,构造该二叉树,采用后序遍历,输出后序遍历结果。2、观察输出结果。#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct Node{ char data; s原创 2020-11-01 13:37:15 · 942 阅读 · 0 评论 -
稀疏矩阵的三元组存储
输入一个 n×m 的整型数组,采用三元组压缩存储该数组,以每个整数按照两个字节存放计算原始数组和压缩存储后三元组所需存储空间大小。1、输入n和m,中间以逗号分隔。2、输入 n×m 数组元素,中间以一个空格分隔。3、打印压缩后的三元组。4、打印压缩前后的所需存储空间。例如:【输入】6,100 1 0 2 0 0 0 0 5 03 0 0 0 0 0 0 9 0 00 0 0 0 0 6 0 0 0 08 0 0 0 0 0 0 0 3 00 0 0 0 0 0 0 0 0 00 0原创 2020-11-01 13:28:08 · 3381 阅读 · 1 评论 -
线性表(顺序表)翻转
设有一个线性表La,请用算法完成顺序存储结构下线性表La的逆序。实现要求:1)输入线性表元素个数n。2)顺次输入线性表元素。3)完成线性表逆序。4)打印逆序后线性表。提交要求:1、采用标准C语言编程,否则无分数。在提交前请用系统提供的TCC编译器进行编译确认。2、请用提供的测试数据运行测试结果,提交的程序无需提供运行结果,只提交源程序。3、运行结果请对照参考运行结果格式,做到严格与参考运行结果格式一致。4、输入、输出线性表中n个数据之间用一个空格分隔。例如:输入:51 2 3 4原创 2020-11-01 13:16:31 · 1069 阅读 · 1 评论 -
线性表(单链表)翻转
设有一个线性表La,请用算法完成单链表存储结构下线性表La的逆序。实现要求:1)输入线性表元素个数n。2)顺次输入线性表元素。3)完成线性表逆序。4)打印逆序后线性表。提交要求:1、采用标准C语言编程,否则无分数。在提交前请用系统提供的TCC编译器进行编译确认。2、请用提供的测试数据运行测试结果,提交的程序无需提供运行结果,只提交源程序。3、运行结果请对照参考运行结果格式,做到严格与参考运行结果格式一致。4、输入、输出线性表中n个数据之间用一个空格分隔。例如:输入:51 2 3原创 2020-10-27 13:53:10 · 888 阅读 · 0 评论 -
哈夫曼(Huffman)编码
一、实验目的1、掌握二叉树基本概念。2、掌握二叉树建立方法。3、掌握二叉树基本操作和遍历方法。4、掌握哈夫曼(Huffman)树建立、编码5、了解解码方法。二、实验内容1、二叉树的定义和操作。2、对输入权值个数及其权值,构造哈夫曼树。 权值数量 5 权值 5 4 3 2 1 3、输出其哈夫曼编码。三、根据课本内容,编写以下程序1、请编程实现二叉树的二叉链表链式存储。2、请编程实现二叉树的前序,后序和中序遍历。3、请编程实现哈夫曼树和哈夫曼树编码【例如】输入:61原创 2020-10-27 13:44:41 · 425 阅读 · 0 评论 -
栈的应用实验
一、实验目的1、掌握栈的基本概念和后入先出的基本特征。2、掌握栈的基本操作,包括:栈的初始化、销毁、入栈和出栈操作。二、实验内容1、采用顺序表初始化空间大小为 50 个字符的栈。2、完成下列操作,其中 S 为栈,x,y 为字符型变量。x= "c"; y= "k"; Push(S,x); Push(S, "a"); Push(S,y); Pop(S,x); Push(S, "t"); Push(S,x); Pop(S,x); Push(S, "s"); w原创 2020-10-27 13:28:37 · 881 阅读 · 0 评论 -
链式循环队列
假设以带头点的循环链表表示队列,链表长度为n,只设一个指针指向队尾元素节点,不设头指针,试编写相应的队列初始化、入队和出队的算法;实现要求:1、输入循环链表长度n;2、入队m个元素;3、打印队列中所有元素;4、出队k个元素;5、打印队列中的元素;6、销毁队列。输入:861 2 3 4 5 63输出:1 2 3 4 5 64 5 6#include <stdio.h>#include <stdlib.h>#define OK 1#define E原创 2020-10-26 14:23:45 · 916 阅读 · 0 评论 -
线性表(单链表)实验
一、实验目的1.线性表(LINE)的概念:数据元素之间存在着线性关系。2.线性表的顺序表示和实现。3.线性表的链式表示和实现。4.线性表的基本操作:初始化、插入、修改、删除、遍历。二、实验内容1.使用数组编程实现线性表(编程实现)。2.使用单链表实现线性表(编程实现)。3.定义一个顺序表,长度最大50。4. 输入一个整数N,输入N个整数,整数之间用一个空格分隔。5. 查找操作:查找30是否存在,如果存在则输出"Found!",否则输出"Not Found!";用67重复上述过程。6.原创 2020-10-26 14:16:03 · 1926 阅读 · 0 评论 -
查找与排序实验
一、实验目的1、掌握折半查找方法。2、掌握快速排序方法。二、实验内容1、输入 n 个关键字,完成快速排序。2、输入两个关键字采用折半查找。#include<stdio.h>#include<stdlib.h>int Partition(int *p,int low,int high){p[0] = p[low];int pivotkey = p[low];while(low < high){while( low<high &&原创 2020-10-26 12:53:41 · 666 阅读 · 1 评论 -
线性表(顺序表)实验
题目要求:1.使用数组编程实现线性表(编程实现)。2.使用单链表实现线性表(编程实现)。3.定义一个顺序表,长度最大50。4. 输入一个整数N,输入N个整数,整数之间用一个空格分隔。5. 查找操作:查找30是否存在,如果存在则输出"Found!",否则输出"Not Found!";用67重复上述过程。6. 插入操作:线性表第一个元素的位置为1,在线性表的第5个位置插入12,输出插入新元素后的线性表;在第10个位置插入18,输出插入新元素后的线性表。7. 删除操作:删除值为10的元素(可能有多个原创 2020-05-12 09:39:12 · 918 阅读 · 1 评论