算法与数据结构
AlexCookie
感谢互联网,让我在知识的海洋遨游,感谢广大网友,把所学知识分享,咱们一起进步!博主主分享:算法,计算机方向。
展开
-
计算机复试题总结(三)
程序局部性,空间局部性?程序局部性指程序运行时的局部性规律,程序执行某个区域,要访问的存储空间也局限在一个区域。空间局部性指当一个存储单元被访问时其周围的存储单元大概率也会被访问,由于程序访问的顺序性引起的。比较TCP和UDPTCP和UDP都是传输层的协议,用端口号标识数据所达的进程。TCP面向有连接服务,提供可靠的传输,有流量和拥塞控制适合消息等对精确要求的时候如FTP,HTTP,SMTP,POP3。UDP面向无连接服务,提供不可靠的传输,无确认机制,实时性较高,主要用于图像,..原创 2022-03-20 14:28:19 · 4228 阅读 · 0 评论 -
计算机复试题总结(一)
数据库设计过程需求分析,概念模型设计(ER图),逻辑模型设计(ER图到表),物理模型实现(存储结构、位置),实现(编程,测试),数据库运行和维护事务的概念和四个特性事务:作为单个逻辑工作单元执行一系列操作。原子性(不可分割,一个事务运行到底),一致性(并行),一致性,隔离性,持久性黑盒&&白盒测试黑盒指功能测试,主要对功能测试,不了解具体的结构,把程序看作一个不能打开的黑盒子。白盒指结构测试,了解具体的结构。,测试内部结构,动作是否按照规格说明书进行α测试和原创 2022-03-18 21:51:13 · 735 阅读 · 0 评论 -
使用STL的map容器实现统计功能。如:读入一组数据(文具,数量)( stationery,amount),统计各种文具的总数
使用STL的map容器实现统计功能。如:读入一组数据(文具,数量)( stationery,amount),统计各种文具的总数/*使用STL的map容器实现统计功能。如:读入一组数据(文具,数量)( stationery,amount),统计各种文具的总数 */#include <map>//处理不包含重复项的元素 #include <stdio.h>#include <string>#include <iostream>#defin.原创 2021-11-22 22:10:52 · 656 阅读 · 0 评论 -
堆排序,用以下无序序列加以验证:49,38,65,97,76,13,27,49
堆排序,用以下无序序列加以验证:49,38,65,97,76,13,27,49/*堆排序,用以下无序序列加以验证:49,38,65,97,76,13,27,49 */#include <stdio.h>#define N 9//堆算法,模拟 完全二叉树的一种算法(核心是如根节点下标i 左子树下标等于2 * i 右子树等于左子树+1即2 * i + 1) //构造成一个大顶堆,k为要调整的非叶子结点下标,size为数组a[]的大小 void adjust_mheap(i.原创 2021-11-21 21:32:41 · 1107 阅读 · 0 评论 -
快速排序,用以下无序序列加以验证:49,38,65,97,76,13,27,49
快速排序,用以下无序序列加以验证:49,38,65,97,76,13,27,49/*快速排序,用以下无序序列加以验证:49,38,65,97,76,13,27,49 */#include <stdio.h>//快速排序(不稳定算法)void quickSort(int a[],int begin,int end){ if(begin == end)//该趟比对完成 { return; } int b = begin,e = end;//begin.原创 2021-11-21 21:31:17 · 1486 阅读 · 0 评论 -
简单插入排序,用以下无序序列加以验证:49,38,65,97,76,13,27,49
简单插入排序,用以下无序序列加以验证:49,38,65,97,76,13,27,49/*简单插入排序,用以下无序序列加以验证:49,38,65,97,76,13,27,49 */#include <stdio.h>//插入排序(稳定算法)void insertSort(int a[]){ int i; int j; int temp; //定义一个临时变量,用于交换数据时存储 for(i=1;i<8;i++) { //对序列.原创 2021-11-21 21:30:03 · 1144 阅读 · 0 评论 -
在有n个学生的成绩表里,每条信息由姓名与分数组成,要求:1按分数高低次序,输出每个学生的名字,分数相同的为同一名次,2按名次输出每个学生的姓名与分数。
在有n个学生的成绩表里,每条信息由姓名与分数组成,要求:1按分数高低次序,输出每个学生的名字,分数相同的为同一名次,2按名次输出每个学生的姓名与分数。/*在有n个学生的成绩表里,每条信息由姓名与分数组成,要求:1按分数高低次序,输出每个学生的名字,分数相同的为同一名次,2按名次输出每个学生的姓名与分数。 */#include <stdio.h>#include <algorithm>//sort函数using namespace std;//含 algori原创 2021-11-21 21:29:02 · 3058 阅读 · 0 评论 -
使用哈希函数:H(k)=3k MOD 11,并采用链地址法处理冲突。试对关键字序列(22,41,53,46,30,13,01,67)构造哈希表,求等概率情况下查找成功的查找长度,并设计构造哈希表
使用哈希函数:H(k)=3k MOD 11,并采用链地址法处理冲突。试对关键字序列(22,41,53,46,30,13,01,67)构造哈希表,求等概率情况下查找成功的查找长度,并设计构造哈希表的完整算法。 CODE:/*使用哈希函数:H(k)=3k MOD 11,并采用链地址法处理冲突。试对关键字序列(22,41,53,46,30,13,01,67)构造哈希表,求等概率情况下查找成功的查找长度,并设计构造哈希表的完整算法。 */#include <stdio.h&g.原创 2021-11-21 15:33:23 · 3902 阅读 · 0 评论 -
在一个无序表A中,采用顺序查找算法查找值为x的元素,返回其所在位置
在一个无序表A中,采用顺序查找算法查找值为x的元素,返回其所在位置CODE:/*在一个无序表A中,采用顺序查找算法查找值为x的元素,返回其所在位置 */#include <stdio.h>//顺序查找 void Sequential_search(int A[],int data){ int i = 0; while(A[i] != 0) { if(A[i ++] == data) { printf("position: %d",i);//打印.原创 2021-11-21 01:07:55 · 1414 阅读 · 0 评论 -
利用二分查找算法在一个有序表中插入一个元素x,并保持表的有序性。
利用二分查找算法在一个有序表中插入一个元素x,并保持表的有序性。CODE:/*利用二分查找算法在一个有序表中插入一个元素x,并保持表的有序性。 */#include <stdio.h>#define END 1 << 12//4096作为 整形数组的结束标识 int get_len(int a[]);//获取数组长度 void print_array(int a[]);//打印数组int len = 0;//测试数组的长度 void insert.原创 2021-11-21 01:06:33 · 3111 阅读 · 0 评论 -
利用二分查找算法查找任意一个元素所比较的次数
利用二分查找算法查找任意一个元素所比较的次数CODE:/*利用二分查找算法查找任意一个元素所比较的次数 */#include <stdio.h>#define END 1 << 12//4096作为 整形数组的结束标识 int get_len(int a[]);//获取数组长度 void print_array(int a[]);//打印数组int len = 0;//测试数组的长度 int count = 0;//记录查找任意一个元素所比较的次数 .原创 2021-11-21 01:05:13 · 581 阅读 · 0 评论 -
输入一串整数,构造其对应的二叉排序树,并在其上删除任意一个值等于用户输入值的结点。
输入一串整数,构造其对应的二叉排序树,并在其上删除任意一个值等于用户输入值的结点。原创 2021-11-21 01:02:19 · 1366 阅读 · 0 评论 -
判断无向图G是否连通。若连通返回1,否则返回0
判断无向图G是否连通。若连通返回1,否则返回0CODE:/*判断无向图G是否连通。若连通返回1,否则返回0 */#define N 1 >> 8 //代替无穷大(默认 邻接矩阵) #define size 6#include <stdio.h>int flag[size] = {0};//无向图 只要每个顶点至少有一条边 就连通 int judgment(int a[][size]){ for(int i = 0;i < size;i ++.原创 2021-11-20 15:30:13 · 3330 阅读 · 1 评论 -
用邻接表作为存储结构的图G,求图中每个顶点的出度,计算图中出度为0的顶点数
用邻接表作为存储结构的图G,1 求图中每个顶点的出度2 计算图中出度为0的顶点数建树code://构建 邻接表,同时统计 每个结点的 出度 int len = sizeof(node);//便于 申请 结点空间 void create_list(listnode a[]){ listnode *p = a;//表结点 node *q;//指向边结点 //初始 N个 表结点 for(int i = 0;i < N;i ++) { p[i].index = i .原创 2021-11-20 15:27:33 · 3061 阅读 · 0 评论 -
创建一个带权路径的 有向图,无向图,输出从v0到其他各个顶点的最短路径采用Dijstra算法求一个顶点到其他所有顶点的最短路径
创建一个带权路径的 有向图,无向图,输出从v0到其他各个顶点的最短路径采用Dijstra算法求一个顶点到其他所有顶点的最短路径Dijstra code:/*创建一个带权路径的 有向图,无向图,输出从v0到其他各个顶点的最短路径采用Dijstra算法求一个顶点到其他所有顶点的最短路径 */#define N 1 << 12 //4096,这里代替无穷大(默认 邻接矩阵) #define size 6#include <stdio.h>//cost为带.原创 2021-11-20 15:23:48 · 1267 阅读 · 0 评论 -
利用Kruskal算法求网的最小生成树,输出构造生成树过程的连通分量,以文本形式输出生成树中各条边路径,以及其权值。
利用Kruskal算法求网的最小生成树,输出构造生成树过程的连通分量,以文本形式输出生成树中各条边路径,以及其权值。/*利用Kruskal算法求网的最小生成树,输出构造生成树过程的连通分量,以文本形式输出生成树中各条边路径,以及其权值。 */#include<algorithm>#include<stdio.h>#include <string.h>using namespace std;int dep[1001];//用于回溯的数组 st.原创 2021-11-20 15:20:00 · 580 阅读 · 0 评论 -
根据用户输入的偶对(以输入0表示结束)建立其有向图的邻接表,并输出其一个拓扑排序序列和逆拓扑排序,并判断是否有回路
根据用户输入的偶对(以输入0表示结束)建立其有向图的邻接表,并输出其一个拓扑排序序列和逆拓扑排序,并判断是否有回路top代码://拓扑排序int top[size] = {0};//保存 拓扑排序结果 方便逆拓扑 int topsort(listnode a[]){ stack<int>s1; node *q; for(int i = 0;i < size;i ++) { if(a[i].indegree == 0)//遍历表结点,所有入度为0的都进栈 .原创 2021-11-20 15:17:17 · 1081 阅读 · 0 评论 -
建立一个二叉树 并 中序遍历二叉树
建立一个二叉树 并中序遍历二叉树code:/*建立一个二叉树 并 中序遍历二叉树*/#include "stdio.h"//包含 getchar() scanf() printf() #include "malloc.h"//malloc()动态申请空间 函数//二叉树 结点 struct node{ char data; struct node *lchild,*rchild;}bnode;typedef struct node * blink;//建立 二叉数.原创 2021-11-18 20:06:43 · 1440 阅读 · 0 评论 -
由先缀表达式建立二叉树,求该 表达式对应的后缀,中缀表达式
由先缀表达式建立二叉树,求该 表达式对应的后缀,中缀表达式建树代码://先序 建立 二叉数 blink create_binary(){ blink bt; char ch; ch = getchar(); if (ch == '#') { bt = NULL; } else { bt = (blink)malloc(sizeof(bnode)); bt->原创 2021-11-18 20:04:14 · 1982 阅读 · 1 评论 -
实现按层次遍历二叉树
实现按层次遍历二叉树主要代码:void sequence(blink bt){ queue<blink> s; s.push(bt); while(s.empty() == 0)//该函数返回0说明不为空(为空 会返回1) { printf("%c",s.front()->data);//打印 将出队结点 的元素值 s.push(s.front()->lchild); //左孩子 进队 s.push(s.front()->rchi...原创 2021-11-18 19:59:48 · 559 阅读 · 0 评论 -
建立合法的表达式字符串只含二元操作符的非空表达式数用二叉树遍历算法求该中缀表达式对应的后缀,前缀表达式
建立合法的表达式字符串只含二元操作符的非空表达式数用二叉树遍历算法求该中缀表达式对应的后缀,前缀表达式/*建立合法的表达式字符串只含二元操作符的非空表达式数用二叉树遍历算法求该中缀表达式对应的后缀,前缀表达式*/#include "stdio.h"//包含 getchar() scanf() printf() #include "malloc.h"//malloc()动态申请空间 函数//二叉树 结点 struct node{ char data; struct node *lc原创 2021-11-18 19:55:46 · 639 阅读 · 0 评论 -
稀疏矩阵运算器,以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,~实现两个矩阵相加,相减或者相乘的运算。
稀疏矩阵运算器,以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,~实现两个矩阵相加,相减或者相乘的运算。~稀疏矩阵的输入形式 采用三元组表示,运算结果矩阵 以通常阵列形式列出CODE:/*稀疏矩阵运算器,以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,~实现两个矩阵相加,相减或者相乘的运算。~稀疏矩阵的输入形式 采用三元组表示,运算结果矩阵 以通常阵列形式列出 */#include <stdio.h>#include <string.h>..原创 2021-11-17 22:08:42 · 2008 阅读 · 0 评论 -
设计 一个 算法将 串中所有字符倒过来重新 排列,类似于 algorithm 库中的reverse函数或者 使用string.h库中的strrev函数
设计 一个 算法将 串中所有字符倒过来重新 排列,类似于 algorithm 库中的reverse函数或者 使用string.h库中的strrev函数/*设计 一个 算法将 串中所有字符倒过来重新 排列,类似于 algorithm 库中的reverse函数或者 使用string.h库中的strrev函数*/#include <stdio.h>char c[101] = {'\0'};/*s字符串 不能被直接 在原串 赋值(只能串与串赋值),或者 加个媒介c[]数原创 2021-11-17 22:07:04 · 544 阅读 · 0 评论 -
顺序结构存储串编写一个函数 index(s1,s2) 用于判断s2是否 是s1的字串,若是,返回 其在主串的 位置,否则返回 -1
顺序结构存储串编写一个函数 index(s1,s2) 用于判断s2是否 是s1的字串,若是,返回 其在主串的 位置,否则返回 -1/*顺序结构存储串编写一个函数 index(s1,s2) 用于判断s2是否 是s1的字串,若是,返回 其在主串的 位置,否则返回 -1 */#include <stdio.h>//传入 两个 数组 变量, 进行 遍历比对 int index(char a[],char b[]){ //如果 传入的 数组 不符合 要求,直接 返回 .原创 2021-11-17 22:05:07 · 2088 阅读 · 0 评论 -
删除串s1中所有s2字串
特别注意的如下图caabcbc 删除 abc 后 cabc 仍有 abc 显然 还得 删除 abc结果为 c。然后 向前 覆盖 子串 一样的 长度,覆盖结束(删除),末尾也 清零 子串一样 的长度删除串s1中所有s2字串code:/*删除串s1中所有s2字串 */#include <stdio.h>#include <string.h>//打印 void prin_array(char a[]){ for(int i = 0;..原创 2021-11-17 22:02:16 · 634 阅读 · 0 评论 -
算符优先法 对算术 表达式 求值以算符优先法 形式 从 终端 输入语法正确,不含变量的 整数 表达式实现 对四则 混合运算 表达式 的 求值 ,运用 运算符栈,输入字符和主要操作变化过程
演视用算符优先法 对算术 表达式 求值以算符优先法 形式 从 终端 输入语法正确,不含变量的 整数 表达式实现 对四则 混合运算 表达式 的 求值 ,运用 运算符栈,输入字符和主要操作变化过程/*演视用算符优先法 对算术 表达式 求值以算符优先法 形式 从 终端 输入语法正确,不含变量的 整数 表达式实现 对四则 混合运算 表达式 的 求值 ,运用 运算符栈,输入字符和主要操作变化过程 */#include <stdio.h>#include <string.h&.原创 2021-11-15 22:02:32 · 581 阅读 · 0 评论 -
生成两个多项式PA PB,求PA和PB之和,输出 “和多项式”
生成两个多项式PA PB,求PA和PB之和,输出 “和多项式”/*生成两个多项式PA PB,求PA和PB之和,输出 “和多项式” *///#include <iostream>//using namespace std;#include <stdio.h>#include <malloc.h>//包含 malloc 申请动态空间 函数 //结构体 typedef struct PNode{ double coef; .原创 2021-11-14 22:18:12 · 401 阅读 · 0 评论 -
生成 非递减 有序 线性表 LA,LB。将LA,LB归并为 新表LC,--且LC中同样 非值递减 排序,--输出LA,LB,LC
--生成 非递减 有序 线性表 LA,LB。--将LA,LB归并为 新表LC,--且LC中同样 非值递减 排序,--输出LA,LB,LC/*--生成 非递减 有序 线性表 LA,LB。--将LA,LB归并为 新表LC,--且LC中同样 非值递减 排序,--输出LA,LB,LC *///#include <iostream>//using namespace std;#include <stdio.h>#include <algorithm>.原创 2021-11-14 22:15:20 · 1804 阅读 · 0 评论 -
统计 选票 按单链表 存放选票 编号 1,2,3,...,N,且 一人 只有 一票
统计 选票 按单链表 存放选票 编号 1,2,3,...,N,且 一人 只有 一票/*统计 选票 按单链表 存放选票 编号 1,2,3,...,N,且 一人 只有 一票 */#include <stdio.h> //包含 scanf() printf() 等输入输出 函数 #include <stdlib.h>//包含 随机 函数 rand() #include <time.h> //含tiem()函数 获取 当前 时间 #include <m.原创 2021-11-14 22:12:30 · 310 阅读 · 0 评论 -
A和B 单链表表示 集合,求其 交集 并集 差集
A和B 单链表表示 集合的 交集 并集 差集/*A和B 单链表表示 集合的 交集 并集 差集 *///#include <iostream>//using namespace std;#include <stdio.h>#include <stdlib.h>//包含 随机 函数 rand() #include <time.h> //含tiem()函数 获取 当前 时间 #include <malloc.h> //含ma.原创 2021-11-14 22:10:00 · 3336 阅读 · 0 评论 -
设计 进行 复数运算的演示程序,实现以下 6 种运算
设计 进行 复数运算的演示程序,实现以下 6 种运算//设计 进行 复数运算的演示程序,实现以下 6 种运算 #include <stdio.h>#include <iostream>using namespace std;typedef struct complex{ int real;//实部 int imaginary;//虚部 }complex;//虚部 与 实部 初始化 //由输入的 实部和虚部 生成一个 复数 --1complex ge...原创 2021-11-14 13:50:54 · 2354 阅读 · 2 评论 -
输入10个整数,最小与第一个数对换,最大与最后对换 3个自定义函数,输入10个数,输出10个数
/*输入10个整数,最小与第一个数对换,最大与最后对换 3个自定义函数,输入10个数,输出10个数 */ #include <stdio.h>#include <limits.h>//包含INT_MAX 2147483647 和 INX_MIN -2147483648 //#include <iostream>//using namespace std;//调换最小值 和 第一位 参数:整形数组 无返回值 void mmin_swap_b...原创 2021-11-13 23:41:39 · 359 阅读 · 0 评论