数据结构
谁的BUG最难改
这个作者很懒,什么都没留下…
展开
-
DS的代码整理(下)
还有这么多莫名其妙的代码,终究还是写代码的时候懒得写文件名的缘故。[二分查找.cpp]原创 2023-04-18 11:27:23 · 116 阅读 · 0 评论 -
DS树--二叉树高度
【代码】DS树--二叉树高度。原创 2023-04-18 11:14:31 · 102 阅读 · 0 评论 -
DS的代码整理(上)
OJ上已经把我的账号记录删除了,只有本地还有一些存档,但是我又不记得题目,只有文件名写了是ABCDE,就把代码都发出来吧。原创 2023-04-18 11:13:58 · 121 阅读 · 0 评论 -
MapReduce实现平均分计算
至此,词频统计程序顺利运行结束。需要注意的是,如果要再次运行WordCount.jar,需要首先删除HDFS中的output目录,否则会报错。原创 2022-11-19 12:56:28 · 1119 阅读 · 0 评论 -
球型黑白棋
《数据结构与算法》大作业题目说明图 1 黑白棋的初始状态黑白棋的游戏规则简单,上手很容易,棋盘的变化也远没有围棋那么复杂。早在1997年8月,使用着不如当今手机高效的计算机,执行着非机器学习的代码,人工智能就已经将人类冠军击败,并从此把人类棋手远远甩在后面,是最早被人工智能攻克的人类游戏之一。所以,十分适合拿来作为我们大作业的课题。但是,我们要做的并不是普通的黑白棋。众所周知,黑白棋中,边沿位置和角落位置因为能够有效地防止被对方棋子包夹,占有着极大优势,是游戏过程中必须要争取位置。那么,能不能设计一个没原创 2022-06-24 10:35:32 · 1189 阅读 · 0 评论 -
A. 前驱后继(线性结构)
【id:144】【10分】A. 前驱后继(线性结构)题目描述在双向链表中,A有一个指针指向了后继节点B,同时,B又有一个指向前驱节点A的指针。这样不仅能从链表头节点的位置遍历整个链表所有节点,也能从链表尾节点开始遍历所有节点。对于给定的一列数据,按照给定的顺序建立双向链表,按照关键字找到相应节点,输出此节点的前驱节点关键字及后继节点关键字。输入第一行两个正整数n(代表节点个数),m(代表要找的关键字的个数)。接下来输入n个整数为关键字key(数据保证关键字在数列中没有重复)。接下来有m个要查找的关键字,每原创 2022-06-06 15:35:57 · 322 阅读 · 0 评论 -
E. DS线性表—多项式相加
【id:24】【20分】E. DS线性表—多项式相加题目描述对于一元多项式 p(x)=p0+p1x+p2x2+ … +pnxn ,每个项都有系数和指数两部分,例如p2x2的系数为p2,指数为2。编程实现两个多项式的相加。例如5+x+2x2+3x3,-5-x+6x2+4x4,两者相加结果:8x2+3x3+4x4其中系数5和-5都是x的0次方的系数,相加后为0,所以不显示。x的1次方同理不显示。可用顺序表或单链表实现。输入第1行:输入t表示有t组测试数据第2行:输入n表示有第1组的第1个多项式包含n个项第原创 2022-06-06 15:32:35 · 502 阅读 · 0 评论 -
D. DS链表—学生宿舍管理
【id:25】【20分】D. DS链表—学生宿舍管理题目描述假设某校有20间宿舍,宿舍编号101,102,…,120。每间只住一名学生。初始部分宿舍已用。用两个链表(已用宿舍链表和可用宿舍链表)维护宿舍的管理,实现宿舍分配、宿舍交回。约定已用宿舍链表按宿舍号升序链接。初始可用宿舍链表也按宿舍号升序链接。宿舍分配从可用宿舍链表中摘取第一间宿舍分配给学生。学生交回的宿舍挂在可用宿舍链表最后。备注:使用list容器或静态链表。不用考虑宿舍分配和交回不成功的情况。输入初始宿舍状态,第一行输入n,表示已用宿舍n间后原创 2022-06-06 15:25:28 · 491 阅读 · 1 评论 -
C. DS单链表--合并
【id:23】【20分】C. DS单链表–合并题目描述假定两个单链表是递增有序,定义并实现以下函数,完成两个单链表的合并,继续保持递增有序int LL_merge(ListNode *La, ListNode *Lb)输入第1行先输入n表示有n个数据,接着输入n个数据第2行先输入m表示有M个数据,接着输入m个数据输出输出合并后的单链表数据,数据之间用空格隔开样例查看模式正常显示查看格式输入样例1 ......原创 2022-06-06 15:23:44 · 730 阅读 · 0 评论 -
B. DS单链表--结点交换
【id:22】【20分】B. DS单链表–结点交换题目描述用C++实现含头结点的单链表,然后实现单链表的两个结点交换位置。注意不能简单交换两个结点包含数据,必须通过修改指针来实现两个结点的位置交换交换函数定义可以参考:swap(int pa, int pb) //pa和pb表示两个结点在单链表的位置序号swap (ListNode * p, ListNode * q) //p和q表示指向两个结点的指针输入第1行先输入n表示有n个数据,接着输入n个数据第2行输入要交换的两个结点位置第3行输入要交换的两原创 2022-06-06 15:20:27 · 341 阅读 · 0 评论 -
A. DS单链表--类实现
【id:21】【20分】A. DS单链表–类实现题目描述用C++语言和类实现单链表,含头结点属性包括:data数据域、next指针域操作包括:插入、删除、查找注意:单链表不是数组,所以位置从1开始对应首结点,头结点不放数据类定义参考输入n第1行先输入n表示有n个数据,接着输入n个数据第2行输入要插入的位置和新数据第3行输入要插入的位置和新数据第4行输入要删除的位置第5行输入要删除的位置第6行输入要查找的位置第7行输入要查找的位置输出n数据之间用空格隔开,第1行输出创建后的单链表的数据每原创 2022-06-06 15:18:50 · 679 阅读 · 0 评论 -
D. DS队列----银行单队列多窗口模拟
D. DS队列----银行单队列多窗口模拟题目描述假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间。输入输入第1行给出正整数N(≤1000),为顾客总人数;随后N行,每行给出一位顾客的到达时间T和事务处理时间P,并且假设输入数据已经按到达时间先后排好了顺序;最后一行给出正整数K(≤10)原创 2022-03-29 22:41:41 · 380 阅读 · 0 评论 -
D. DS二叉树—二叉树镜面反转
D. DS二叉树—二叉树镜面反转题目描述假设二叉树用二叉链表存储,用先序序列结果创建。输入二叉树的先序序列,请你先创建二叉树,并对树做个镜面反转,再输出反转后的二叉树的先序遍历、中序遍历、后序遍历和层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。–程序要求–若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio程序中若include多过一个头文件,不看代码,作0分处理不允许使用第三方对象或函数实现本题的要求输入测试次数t原创 2022-04-26 20:42:38 · 812 阅读 · 0 评论 -
C. DS二叉平衡树构建(教材版)
【id:157】【20分】C. DS二叉平衡树构建题目描述在初始为空的平衡二叉树中依次插入n个结点,请输出最终的平衡二叉树。要求实现平衡二叉树,不可以使用各类库函数。AVL代码参考模板:#include using namespace std;#define LH 1 // 左高#define EH 0 // 等高#define RH -1 // 右高class BiNode{public:int key; // 关键值int bf; // 平衡因子BiNode *lChild原创 2022-05-26 21:07:46 · 1388 阅读 · 0 评论 -
D. DS顺序表之循环移位
【id:20】【25分】D. DS顺序表之循环移位题目描述顺序表的移位是循环移位,例如顺序表:1,2,3,4,5,6。如果左移1位,即原来的头元素移动到末尾,其它元素向左移1位,变成2,3,4,5,6,1。同理,如果右移1位,即原来的尾元素移动到头,其它元素向右移1位,变成6,1,2,3,4,5。以下是移位的多个例子:原数据:1,2,3,4,5,6左移3位:4,5,6,1,2,3,与原数据对比右移4位:3,4,5,6,1,2,与原数据对比请编写程序实现顺序表的循环移位操作输入第1行输入n表示原创 2022-03-08 16:08:09 · 413 阅读 · 0 评论 -
C. DS顺序表--合并操作
【id:19】【25分】C. DS顺序表–合并操作题目描述建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为1000)已知两个递增序列,把两个序列的数据合并到顺序表中,并使得顺序表的数据递增有序输入第1行先输入n表示有n个数据,接着输入n个数据,表示第1个序列,要求数据递增互不等第2行先输入m表示有m个数据,接着输入m个数据,表示第2个序列,要求数据递增互不等输出顺序表内容包括顺序表的实际长度和数据,数据之间用空格隔开第1行输出创建后的顺序表内容样例查看模式正常显示查看格式原创 2022-03-08 16:07:23 · 189 阅读 · 0 评论 -
B. DS顺序表--连续操作
【id:18】【25分】B. DS顺序表–连续操作题目描述建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为1000)该类具有以下成员函数:构造函数:实现顺序表的初始化。插入多个数据的multiinsert(int i, int n, int item[])函数,实现在第i个位置,连续插入来自数组item的n个数据,即从位置i开始插入多个数据。删除多个数据的multidel(int i, int n)函数,实现从第i个位置开始,连续删除n个数据,即从位置i开始删除多个数据。编写main原创 2022-03-08 16:06:51 · 156 阅读 · 0 评论 -
A. DS顺序表--类实现
【id:17】【25分】A. DS顺序表–类实现题目描述用C++语言和类实现顺序表属性包括:数组、实际长度、最大长度(设定为1000)操作包括:创建、插入、删除、查找类定义参考输入第1行先输入n表示有n个数据,即n是实际长度;接着输入n个数据第2行输入要插入的位置和新数据第3行输入要插入的位置和新数据第4行输入要删除的位置第5行输入要删除的位置第6行输入要查找的位置第7行输入要查找的位置输出数据之间用空格隔开第1行输出创建后的顺序表内容,包括顺序表实际长度和数据每成功执行原创 2022-03-08 16:06:04 · 167 阅读 · 0 评论