数据结构
八太子敖春
生活在检验着你到底 是龙还是虫
展开
-
(1)顺序表的操作 ① 输入一组整型元素序列,建立线性表的顺序存储结构。 ② 实现该线性表的遍历。 ③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。 ④ 在该顺序表中删除或插入指
(1)顺序表的操作① 输入一组整型元素序列,建立线性表的顺序存储结构。② 实现该线性表的遍历。③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。④ 在该顺序表中删除或插入指定元素。⑤ 建立两个按值递增有序的顺序表,将他们合并成一个按值递增有序的顺序表。#include#include#define SIZE 20#define MORE 10原创 2017-09-29 19:44:46 · 14707 阅读 · 0 评论 -
无向图的邻接矩阵,深度优先遍历和广度优先遍历的递归与非递归算法
/*(1)输入一组顶点,建立无向图的邻接矩阵。进行DFS(深度优先遍历)和BFS(广度优先遍历)。写出深度优先遍历的递归和非递归算法。*/#include#define max 40 //最大顶点个数#define M 10000 //无穷 #includetypedef struct ArcCell{ int adj; //1/0表示是否有边。网中表示权值 }ArcCell原创 2017-11-13 21:33:46 · 15051 阅读 · 11 评论 -
有序表折半查找的递归算法
#include#includetypedef struct{ int key;}Elemtype;typedef struct{ Elemtype *elem; int length;}Table;int Create(Table &S,int n){ S.elem=(Elemtype *)malloc(n*sizeof(Elemtype)); if(!S.elem){原创 2017-11-16 20:33:55 · 10904 阅读 · 1 评论 -
无向图的邻接矩阵,深度优先遍历广度优先遍历的递归与非递归算法
/*(1)输入一组顶点,建立无向图的邻接矩阵。进行DFS(深度优先遍历)和BFS(广度优先遍历)。写出深度优先遍历的递归和非递归算法。*/#include#define max 40 //最大顶点个数#define M 10000 //无穷 #includetypedef struct ArcCell{ int adj; //1/0表示是否有边。网中表示权值 }ArcCell原创 2017-11-16 21:47:42 · 4281 阅读 · 1 评论 -
二叉排序树,建立,查找,删除等操作
/*输入互不相同的一组整数,构造一棵二叉排序树,要求:① 按递减有序的顺序输出;② 输入一个整数,查找该整数是否在该二叉排序树中,查找成功返回1,否则返回0;③ 在②中,若查找成功,则将该结点从二叉排序树中删除。*/ #include#includetypedef struct{ int key;}ElemType;typedef struct BiTNode{ ElemTyp原创 2017-11-26 17:09:33 · 1119 阅读 · 0 评论 -
直接插入排序,冒泡排序,快速排序,简单选择排序,堆排序,2-路归并排序,文件存储
/*给出n个学生的考试成绩表,每条记录由学号、姓名和分数和名次组成,设计算法完成下列操作:设计一个显示对学生信息操作的菜单函数如下所示:************************* 1、录入学生基本信息 2、直接插入排序 3、冒泡排序 4、快速排序 5、简单选择排序 6、堆排序 7、2-路归并排序 8、输出学生信息 0、退出**********************原创 2017-12-07 20:15:28 · 4760 阅读 · 0 评论 -
双向冒泡排序
#include #define N 100void BidBubbleSort(int array[], int n){ //双向冒泡排序 int low,high,flag,i,temp; low=0; high=n-1; while(low<high){ flag=0; for(i=low;i<hi原创 2018-01-29 14:00:02 · 355 阅读 · 0 评论 -
班级日常工作管理系统
班级日常工作管理系统【问题描述】在以单链表表示的有序的班级日常工作系统中,实现系统的建立、人员的删除、查询以及人员的保存。(1)用单链表存储通日常班级工作数据(包括学号、姓名、电话、年龄、考勤、奖惩);(2)对单链表中的数据按学号进行排序;(3)将操作结果保存在文件中。数据中包含的学号是四位整数,手机号必须是13位。#include#include#define原创 2018-01-29 14:10:16 · 838 阅读 · 0 评论 -
表达式求值问题(包含两位数)
表达式求值问题【问题描述】 给定一个算术表达式,对该表达式进行四则运算。(1)以栈作为存储结构,一个栈存放操作符,一个栈存放操作数; (2)按字符串形式输入表达式; (3)最终结果放在操作数栈中并输出。给定的表达式中,必须有包含两位数的数值。例如,给定的表达式为:(10+2)*6-12/3#includeusing namespace原创 2018-01-29 14:13:21 · 1998 阅读 · 1 评论 -
哈夫曼编码/译码器
哈夫曼编码/译码器【问题描述】 根据给定的一组电文,设计该电文的哈夫曼编码。(1)初始化(Initialization):从终端读入字符集,大小n,随机产生包含n个字符的字符集存入文件中,然后统计每个字符出现的次数作为各字符的权值,以此建立哈夫曼树; (2)编码(Coding):根据建立的哈夫曼树,对数据进行编码,然后将结果存入文件codefile中; (原创 2018-01-29 14:15:16 · 5297 阅读 · 0 评论 -
航班信息查询和检索系统
航班信息查询和检索系统【问题描述】 实现对飞机航班信息进行排序和查找,可按照航班号、起点站、到达站、起飞时间和到达时间等信息进行查询。航班信息表的样式如下:其中航班号一项的格式为:前两个大写字母表示航空公司的名称,后4位为航班编号。(1)对飞机航班信息进行排序; (2)采用折半查找思想完成查找。可按照航班号、起点站、到达站、起飞时间和到达时间等信息进行查询。测试原创 2018-01-29 14:18:39 · 6670 阅读 · 4 评论 -
判断是否为满二叉树
#include#includetypedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree; int Full(BiTree &bt){ //判断是否为满二叉树 if(bt){ if(bt->lchild==NULL&&bt->rchild==NULL) retur原创 2017-11-13 21:31:08 · 4899 阅读 · 3 评论 -
邻接表的逆邻接表
/*已知有向图采用邻接表存储,设计算法,求其逆邻接表。*/#include#include#define max 20typedef struct ArcNode{ int adjvex; //该弧所指向的顶点的位置 struct ArcNode *nextarc; //指向下一条弧的指针 }ArcNode;typedef struct VNode{ char data; //原创 2017-11-13 21:30:00 · 13056 阅读 · 11 评论 -
(2)单链表的操作 ① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数
(2)单链表的操作① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。② 实现该线性表的遍历。③ 在该单链表的第i个元素前插入一个整数。④ 删除该单链表中的第i个元素,其值通过参数将其返回。⑤ 建立两个按值递增有序的单链表,将他们合并成一个按值递减有序的单链表。要求利用原来的存储空间#include#includetypedef struct LNode原创 2017-09-29 19:46:49 · 7956 阅读 · 2 评论 -
输入一个十进制数,利用栈操作,将该数转换成n进制数。
输入一个十进制数,利用栈操作,将该数转换成n进制数。#include#include#define SIZE 20#define MORE 10typedef struct{int *base;int top;int stacksize;}SqStack;void InitStack(SqStack &S){//构造一个空栈S.base=(int原创 2017-09-29 19:48:42 · 5262 阅读 · 0 评论 -
输入一个表达式,表达式中包括三种括号“()”、“[]”和“{}”,判断该表达式的括号是否匹配。
输入一个表达式,表达式中包括三种括号“()”、“[]”和“{}”,判断该表达式的括号是否匹配。#include#include#define N 20#define SIZE 20#define MORE 10typedef struct{char *base;int top;int stacksize;}SqStack;void InitStack(S原创 2017-09-29 19:50:19 · 18549 阅读 · 5 评论 -
循环队列的应用——舞伴配对问题:在舞会上,男、女各自排成一队。舞会开始时,依次从男队和女队的队头各出一人配成舞伴。如果两队初始人数不等,则较长的那一队中未配对者等待下一轮舞曲。假设初始男、女人数及性别
循环队列的应用——舞伴配对问题:在舞会上,男、女各自排成一队。舞会开始时,依次从男队和女队的队头各出一人配成舞伴。如果两队初始人数不等,则较长的那一队中未配对者等待下一轮舞曲。假设初始男、女人数及性别已经固定,舞会的轮数从键盘输入。试模拟解决上述舞伴配对问题。要求:从屏幕输出每一轮舞伴配对名单,如果在该轮有未配对的,能够从屏幕显示下一轮第一个出场的未配对者的姓名。#include#incl原创 2017-09-29 19:51:06 · 9163 阅读 · 0 评论 -
(1)建立二叉树的二叉链表。 (2)写出对用二叉链表存储的二叉树进行先序、中序和后序遍历的递归和非递归算法。 (3)写出对用二叉链表存储的二叉树进行层次遍历算法。 (4)求二叉树的所有叶子及结点总数。
(1)建立二叉树的二叉链表。(2)写出对用二叉链表存储的二叉树进行先序、中序和后序遍历的递归和非递归算法。(3)写出对用二叉链表存储的二叉树进行层次遍历算法。(4)求二叉树的所有叶子及结点总数。include#include#define N 20#define SIZE 100#define MORE 10typedef struct BiTNode{ch原创 2017-10-13 20:31:58 · 22181 阅读 · 2 评论 -
(1)判断是否为完全二叉树 (2)求二叉树的高度
(1)判断是否为完全二叉树(2)求二叉树的高度#include#include#define SIZE 100typedef struct BiTNode{char data; //数据域struct BiTNode *lchild, *rchild; //左、右孩子指针}BiTNode, *BiTree;//队列typedef struct {BiT原创 2017-10-13 21:21:44 · 2090 阅读 · 0 评论 -
线索二叉树的建立与遍历
线索二叉树的建立与遍历#include#includetypedef enum PointerTag{Link, Thread};typedef struct BiThrNode{char data;struct BiThrNode *lchild, *rchild;PointerTag Ltag, Rtag;}BiThrNode, *BiThrTree;BiT原创 2017-10-24 16:48:16 · 531 阅读 · 0 评论 -
建立有向图的邻接表,深度优先遍历和广度优先遍历的递归与非递归算法,判断是否是有向无环图,并输出一种拓扑序列
/*(1)输入一组顶点,建立有向图的邻接表,进行DFS(深度优先遍历)和BFS(广度优先遍历)。写出深度优先遍历的递归和非递归算法。(2)根据建立的有向图,判断该图是否是有向无环图,若是,则输出其一种拓扑有序序列。*/#include#include#define max 20#define SIZE 20#define MORE 10typedef struct ArcNode{原创 2017-11-17 16:55:20 · 13902 阅读 · 1 评论 -
复制二叉树
#include#includetypedef struct BiTNode{ char data; //数据域 struct BiTNode *lchild, *rchild; //左、右孩子指针}BiTNode, *BiTree;void CreatBiTree(BiTree &bt){ //构造二叉树 char ch; ch=getchar(); if(ch=='#')原创 2017-11-13 21:26:35 · 1123 阅读 · 0 评论 -
快速排序的递归和非递归算法测试
快速排序的相关操作【问题描述】 快速排序的递归和非递归算法测试基本要求: (1)将产生的整数序列放入文件中; (2)从文件中读出的数据分别用顺序表和链表存储。测试数据要求: 待排序序列随机产生,要求两位数且互不相同。排序个数由用户输入。#include#include#include#include#define N 40原创 2018-01-29 14:21:13 · 649 阅读 · 0 评论