数据结构与算法(王卓)
whut_52xj
这个作者很懒,什么都没留下…
展开
-
第七章-查找-算法设计题6
第七章-查找-算法设计题6题目描述分别写出在散列表中插入和删除关键字为 K 的一个记录的算法,设散列函数为 H,解决冲突的方法为链地址法。实现#pragma once#include <iostream>using namespace std;#define LEN 13typedef struct hash_node { int data; struct hash_node* next;}hash_node;//表里存的是个地址,这是个HashNode*类型原创 2021-12-09 10:43:55 · 911 阅读 · 0 评论 -
例7.2连地址法(除留余数法和链地址法构造散列表)
除留余数法和链地址法构造散列表实现#pragma once#include <iostream>using namespace std;#define LEN 13typedef struct hash_node { int data; struct hash_node* next;}hash_node;//表里存的是个地址,这是个HashNode*类型的数组typedef hash_node* HashTable[LEN];//初始化void InitH原创 2021-12-08 14:52:40 · 823 阅读 · 0 评论 -
7.3.1二叉排序树
7.3.1二叉排序树代码实现#pragma once#include <iostream>using namespace std;typedef int KeyType;typedef int InfoType;#define ENDFLAG 2021//二叉排序树的二叉链表存储表示//结点的数据域类型定义typedef struct{ KeyType key;//关键字项 InfoType otherinfo;//其他数据项}ElemType;//二叉链表原创 2021-12-06 15:30:10 · 99 阅读 · 0 评论 -
算法6.11 弗洛伊德算法
算法6.11 弗洛伊德算法代码实现//算法6.11 弗洛伊德算法#pragma once#include <iostream>using namespace std;#define MaxInt 32767 //表示极大值,即∞#define MVNum 100 //最大顶点数typedef char VerTexType; //假设顶点的数据类型为字符型原创 2021-12-05 14:47:03 · 170 阅读 · 0 评论 -
算法6.10 迪杰斯特拉算法
算法6.10 迪杰斯特拉算法代码实现//算法6.10 迪杰斯特拉算法#pragma once#include <iostream>using namespace std;//图的邻接矩阵存储//表示极大值#define MaxInt 32767//最大顶点数#define MVNum 100//顶点类型typedef char VerTexType;//边上的权值类型typedef int ArcType;//三个辅助数组int* D = new int原创 2021-12-04 10:36:01 · 675 阅读 · 0 评论 -
第六章算法6.9-克鲁斯卡尔算法
算法6.9-克鲁斯卡尔算法代码实现#pragma once#include <iostream>#include <algorithm>using namespace std;//图的邻接矩阵存储//表示极大值#define MaxInt 32767//最大顶点数#define MVNum 100//顶点类型typedef char VerTexType;//边上的权值类型typedef int ArcType;typedef struct{原创 2021-12-02 16:36:24 · 886 阅读 · 0 评论 -
第六章图-算法6.8普里姆算法
第六章图-算法6.8普里姆算法代码实现#pragma once#include <iostream>using namespace std;//图的邻接矩阵存储(创建无向图)//表示极大值#define MaxInt 32767//最大顶点数#define MVNum 100//顶点类型typedef char VerTexType;//边上的权值类型typedef int ArcType;typedef struct{ //顶点表 VerTexType原创 2021-12-02 11:28:34 · 1053 阅读 · 0 评论 -
第六章算法6.7-广度优先搜索遍历连通图
第六章算法6.7-广度优先搜索遍历连通图代码实现#pragma once#include <iostream>using namespace std;//图的邻接表存储表示#define MVNum 100 //最大顶点数typedef int OtherInfo;typedef char VerTexType;//边(弧)的结点结构typedef struct ArcNode { int adjvex;//存储与顶点vi相邻的顶点的位置 struct A原创 2021-12-01 15:39:09 · 653 阅读 · 0 评论 -
算法6.6 采用邻接表表示图的深度优先搜索遍历
算法6.6 采用邻接表表示图的深度优先搜索遍历代码实现#pragma once#include <iostream>using namespace std;//图的邻接表存储表示#define MVNum 100 //最大顶点数typedef int OtherInfo;typedef char VerTexType;//边(弧)的结点结构typedef struct ArcNode { int adjvex;//存储与顶点vi相邻的顶点的位置 struct原创 2021-11-29 20:56:01 · 3037 阅读 · 0 评论 -
第6章-算法6.5采用邻接矩阵表示图的深度优先搜索遍历
第6章-算法6.5采用邻接矩阵表示图的深度优先搜索遍历代码实现#pragma once#include <iostream>using namespace std;#define MVNum 100//图的邻接矩阵存储(创建无向图)//表示极大值#define MaxInt 0//最大顶点数#define MVNum 100//顶点类型typedef char VerTexType; //边上的权值类型typedef int ArcType;typed原创 2021-11-29 20:11:46 · 872 阅读 · 0 评论 -
6.4.2图的邻接表
6.4.2图的邻接表1.采用邻接表表示法创建无向图代码实现运行结果1.采用邻接表表示法创建有向图代码实现运行结果1.采用邻接表表示法创建无向图代码实现#pragma once#include <iostream>using namespace std;//图的邻接表存储表示#define MVNum 100 //最大顶点数typedef int OtherInfo;typedef char VerTexType;//边(弧)的结点结构typedef struct原创 2021-11-25 16:45:16 · 454 阅读 · 0 评论 -
6.4.1图的邻接矩阵
6.4.1图的邻接矩阵1.采用邻接矩阵表示法创建无向网代码实现运行结果2.采用邻接矩阵表示法创建无向图代码实现运行结果3.采用邻接矩阵表示法创建有向网代码实现运行结果4.采用邻接矩阵表示法创建有向图代码实现运行结果1.采用邻接矩阵表示法创建无向网代码实现#pragma once#include <iostream>using namespace std;//图的邻接矩阵存储(创建无向图)//表示极大值#define MaxInt 32767//最大顶点数#define原创 2021-11-25 10:29:20 · 921 阅读 · 0 评论 -
第五章算法设计题8
第五章算法设计题8题目描述输出二叉树中从每个叶子结点到根结点的路径。代码实现#pragma once#include <iostream>using namespace std;//二叉树的二叉链表存储表示typedef struct BiTNode{ char data; struct BiTNode* lchild, * rchild;}BiTNode,*BiTree;//初始化 构造空二叉树void InitBiTree(BiTree&原创 2021-11-23 21:22:36 · 55 阅读 · 0 评论 -
第五章算法设计题7
第五章算法设计题7题目描述求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值代码实现#pragma once#include <iostream>using namespace std;//二叉树的二叉链表存储表示typedef struct BiTnode{ char data;//结点数据域 struct BiTnode* lchild;//左指针 struct BiTnode* rchild;//右指针}BiTnode, * BiTree;//原创 2021-11-23 20:29:06 · 67 阅读 · 0 评论 -
第五章算法设计题6
第五章算法设计题6题目描述若某个结点左子树空右子树非空或者右子树空左子树非空,则该结点为度为1的结点代码实现#pragma once#include <iostream>using namespace std;#define MAX 100//定义结点typedef struct BiTNode{ char data; //数据 struct BiTNode* lchild; //左孩子 struct BiTNode* rchild;原创 2021-11-23 19:13:12 · 55 阅读 · 0 评论 -
第五章算法设计题5
第五章算法设计题5题目描述计算二叉树最大的宽度(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)代码实现#pragma once#include <iostream>using namespace std;//二叉树的二叉链表存储表示typedef struct BiTnode{ char data;//结点数据域 struct BiTnode* lchild;//左指针 struct BiTnode* rchild;//右指针}BiTnode, * B原创 2021-11-23 15:42:32 · 67 阅读 · 0 评论 -
第五章算法设计题4
第五章算法设计题4题目描述设计二叉树的双序遍历算法(双序遍历是指对于二叉树的每一个结点来说,先访问这个结点,再按双序遍历它的左子树,然后再一次访问这个结点,接下来按双序遍历它的右子树)代码实现#pragma once#include <iostream>using namespace std;//二叉树的二叉链表存储表示typedef struct BiTnode{ char data;//结点数据域 struct BiTnode* lchild;//左指针 struc原创 2021-11-23 13:29:43 · 139 阅读 · 0 评论 -
第五章算法设计题3
第五章算法设计题3题目描述交换二叉树每个结点的左孩子和右孩子代码实现#pragma once#include <iostream>using namespace std;typedef char ElemType;typedef struct BiTnode{ ElemType data; struct BiTnode* lchild; struct BiTnode* rchild;}BiTnode,*BiTree;//初始化 构造空二叉树void Init原创 2021-11-23 11:31:36 · 702 阅读 · 0 评论 -
第五章算法设计题2
第五章算法设计题2题目描述判别两棵树是否相等代码实现#pragma once#include <iostream>using namespace std;typedef char ElemType;typedef struct BiTnode{ ElemType data; struct BiTnode* lchild; struct BiTnode* rchild;}BiTnode,*BiTree;//初始化 构造空二叉树void InitBiTree(B原创 2021-11-23 10:08:52 · 335 阅读 · 0 评论 -
第五章算法设计题1
第五章算法设计题1题目描述(1)统计二叉树的叶结点个数。代码实现#pragma once#include <iostream>using namespace std;//二叉树的二叉链表存储表示typedef struct BiTnode{ char data;//结点数据域 struct BiTnode* lchild;//左指针 struct BiTnode* rchild;//右指针}BiTnode, * BiTree;////初始化 构造空二叉树v原创 2021-11-22 22:02:17 · 314 阅读 · 0 评论 -
第五章-树和二叉树应用题
第五章-树和二叉树应用题题目2题目2求解题目2题目2求解原创 2021-11-22 17:00:07 · 312 阅读 · 0 评论 -
5.1~5.5二叉树的基本操作
5.1~5.5二叉树的基本操作代码实现#pragma once#include <iostream>using namespace std;//二叉树的二叉链表存储表示typedef struct BiTNode{ char data; struct BiTNode* lchild, * rchild;}BiTNode,*BiTree;//顺序栈的存储结构#define MAXSIZE 100typedef struct{ BiTree* base; Bi原创 2021-11-22 14:54:33 · 387 阅读 · 0 评论 -
第四章算法设计题6
第四章算法设计题6题目描述代码实现#pragma once#include <iostream>using namespace std;//交换void swap(int& a, int& b){ int temp = a; a = b; b = temp;}//正数前置void sort(int A[], int n){ int left = 0; int right = n - 1; while原创 2021-11-19 21:33:40 · 291 阅读 · 0 评论 -
第四章算法设计题5
第四章算法设计题5题目描述代码实现利用第一题的思想#pragma once#include <iostream>using namespace std;int main(){ int m, n; cout << "请输入行数和列数:" << endl; cin >> m >> n; int nums[10][10]; if (m < 10 && n < 10) { for (int原创 2021-11-19 16:27:36 · 168 阅读 · 0 评论 -
第四章算法设计题4
第四章算法设计题4题目描述代码实现#pragma once#include <iostream>#include<string>using namespace std;#define MAXLEN 255typedef struct{ string str[MAXLEN + 1]; int length;}SString;void InitSStr(SString& S){ S.str[0] = '0'; S.length = 0;原创 2021-11-19 14:50:04 · 427 阅读 · 0 评论 -
第四章算法设计题3
第四章算法设计题3题目描述代码实现#pragma once#include <iostream>#include<string>using namespace std;#define MAXLEN 255//串的定长顺序存储结构typedef struct{ string str[MAXLEN + 1]; int length;}SString;//初始化void InitStr(SString& S){ S.str[0] = '原创 2021-11-19 10:54:31 · 328 阅读 · 0 评论 -
第四章算法设计题2
第四章算法设计题2题目描述代码实现#pragma once#include <iostream>#include<string>using namespace std;//交换void swap(int a, int b){ int temp = a; a =b ; b = temp;}//逆序存储void ReverseStorage(string &str, int left, int right){ if (left <原创 2021-11-18 19:29:35 · 309 阅读 · 0 评论 -
第四章算法设计题1
第四章算法设计题1题目描述注意:C++里面数字(字母)字符与数字之间的相互转换代码实现#pragma once#include <iostream>using namespace std;void count(){ //创建频度数组 并初始化全为0 int times[36] = { 0 }; //输入的字符 char ch; //每个字符对应的下标 int num; cout << "请输入字符:"; cin >> ch; /原创 2021-11-18 16:35:14 · 174 阅读 · 0 评论 -
第四章—应用题
第四章—应用题题目补充原创 2021-11-18 11:09:24 · 140 阅读 · 0 评论 -
第四章—KMP算法匹配字符串
第四章—KMP算法匹配字符串代买实现#pragma once#include <iostream>using namespace std;#define MAXLEN 255//串的定长顺序存储结构typedef struct{ string str[MAXLEN + 1]; int length;}SString;//初始化void InitStr(SString& S){ S.str[0] = '0'; S.length = 0;}/原创 2021-11-17 16:48:56 · 40 阅读 · 0 评论 -
第三章算法设计题10
第三章算法设计题10题目描述代码实现#pragma once#include <iostream>using namespace std;//单链表的存储结构typedef struct Lnode{ int data; struct Lnode* next;}Lnode,*LinkList;//单链表的初始化void InitList(LinkList& L){ L = new Lnode; L->next = NULL;}//创建原创 2021-11-16 15:04:13 · 364 阅读 · 0 评论 -
第三章算法设计题8
第三章算法设计题8题目描述我的思路代码实现#pragma once#include <iostream>using namespace std;#define MAXSIZE 10//顺序队类型定义typedef struct{ int *base; int front;// 队首指针 int rear;// 队尾指针} SqQueue;//初始化队列void initQueue(SqQueue& Q){ Q.base = new int[M原创 2021-11-16 10:44:26 · 648 阅读 · 0 评论 -
第三章算法设计题7
第三章算法设计题7题目描述代码实现#pragma once#include <iostream>using namespace std;#define MAXSIZE 6//队列的顺序存储结构typedef struct{ int* base; int front; int rear; int tag;}SqQueue;//队列初始化void InitQueue(SqQueue &Q){ Q.base = new int[MAXSIZE];原创 2021-11-15 18:54:19 · 208 阅读 · 0 评论 -
第三章算法设计题6
第三章算法设计题6题目描述代码实现#pragma once#include <iostream>using namespace std;//队列的链式存储结构//结点类型的定义typedef struct QNode{ int data; struct QNode* next;}QNode,*Queueptr;//只设一个指向队尾元素的指针typedef struct{ Queueptr rear;//队尾指针}LinkQueue;//初始化vo原创 2021-11-15 16:17:16 · 699 阅读 · 0 评论 -
第三章算法设计题5
第三章算法设计题5题目描述代码实现#pragma once#include <iostream>#include<string>using namespace std;#define MAXSIZE 100typedef struct{ int* base; int* top; int stacksize;}SqStack;//顺序栈的初始化void InitStack(SqStack& S) { //构造一个空原创 2021-11-15 14:35:46 · 185 阅读 · 0 评论 -
第三章算法设计题3
第三章算法设计题3题目描述代码实现#pragma once#include <iostream>using namespace std;#define MAXSIZE 5typedef struct{ int* base; int* top; int stacksize;}SqStack;//顺序栈的初始化void InitStack(SqStack& S) { //构造一个空栈 S.base = new int[MAXSIZ原创 2021-11-15 10:43:18 · 69 阅读 · 0 评论 -
第三章算法设计题2
第三章算法设计题2题目描述代码实现#pragma once#include <iostream>#include<conio.h>using namespace std;#define MAXSIZE 100typedef struct { int *base; //栈底指针 int *top; //栈顶指针 //栈可用的最大容量 int stacksize; }SqStack;//顺序栈的初始化void原创 2021-11-14 18:16:55 · 43 阅读 · 0 评论 -
第三章算法设计题1
第三章算法设计题1题目描述代码实现#pragma once#include <iostream>using namespace std;#define MAXSIZE 6//双栈数据结构定义typedef struct{ int top[2], bot[2]; //栈顶和栈底指针 int* v; //栈数组 int m; //栈最大可容纳元素个数}DblStack;//双栈初始化void InitStack(DblStack& S){原创 2021-11-14 11:20:16 · 230 阅读 · 0 评论 -
案例3.3表达式求值
案例3.3表达式求值案例描述代码实现#pragma once#include <iostream>using namespace std;//顺序栈的存储结构#define MAXSIZE 100typedef struct { int *base; //栈底指针 int *top; //栈顶指针 //栈可用的最大容量 int stacksize; }SqStack;//顺序栈的初始化void InitStack(Sq原创 2021-11-13 21:10:25 · 554 阅读 · 0 评论 -
案例3.2括号匹配的检验
案例3.2括号匹配的检验案例描述代码实现#pragma once#include <iostream>using namespace std;//顺序栈的存储结构#define MAXSIZE 100typedef struct { char* base; //栈底指针 char* top; //栈顶指针 //栈可用的最大容量 int stacksize;}SqStack;//顺序栈的初始化void InitStack(Sq原创 2021-11-13 09:40:11 · 360 阅读 · 0 评论