数据结构
介绍数据结构学习中的问题和解决方法。
Link思维践行者
numb and dying
展开
-
栈与队列-用队列实现栈
请你仅使用一个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(pushtoppop和empty实现MyStackint pop()int top()truefalsesizeis emptyStack S;push(S, 1);push(S, 2);push(S, 3);push(S, 4);push(S, 5);原创 2024-06-04 11:46:13 · 253 阅读 · 0 评论 -
栈与队列-用栈实现队列
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty):实现MyQueueint pop()int peek()truefalsesizeis empty。原创 2024-06-04 11:17:39 · 268 阅读 · 0 评论 -
C语言实现--快速排序
快速排序介绍快速排序(Quick Sort)使用分治法策略。它的基本思想是:选择一个基准数,通过一趟排序将要排序的数据分成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对着两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。原创 2022-10-06 17:14:47 · 18224 阅读 · 5 评论 -
C语言----冒泡排序
冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序。它是一种较简单的排序算法。他会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换他们的位置。这样,依次遍历之后,最大的元素就在数列的末尾!采用相同的方法在次遍历时,第二大的元素就被排列在最大元素之前。重复次操作,直到整个数列都有序为止!原创 2022-10-05 18:34:29 · 4280 阅读 · 1 评论 -
排序算法--排序算法综述
排序算法--排序算法综述,表明了各种算法在不同数据规模下,完成排序所消耗的时间(毫秒为单位),从表中可以显然看出O(n2)的排序算法比O(nlog2n)的算法时间多出几百上千倍,而且随着数据规模增大时间比也会随着增大;因为排序的数据采用随机数,顺序将被打乱,快速排序算法优先于其他排序算法。原创 2022-10-05 14:02:09 · 271 阅读 · 0 评论 -
字符串距离问题
字符串距离问题,问题的描述:利用C++程序设计语言开发出三个计算两个字符串间距离的函数,分别为编辑距离函数,LCS距离函数和N-gram距离函数。原创 2022-07-14 08:12:52 · 287 阅读 · 0 评论 -
C语言实现迭代实现二分查找
C语言实现迭代实现二分查找,给定一个有序数组,输入一个值,判断数组中是否有和这个值相等的元素,如果有,则输出这个元素的下标,如果没有,则输出未找到。原创 2022-07-14 08:28:40 · 391 阅读 · 0 评论 -
西农大 数据结构 实习二 习题4
#include <iostream>#include <assert.h>using namespace std;int qi1, qi2;int n;int m1, p1;int** Maze = NULL;int** mark = NULL;int m = 0, p = 0;static int count1 = 0;struct items{ int x, y, dir;};struct offsets { int a, b.原创 2022-07-14 08:32:09 · 969 阅读 · 1 评论 -
西农大 数据结构 习题
题目描述迷宫是一个二维矩阵,其中1为墙,0为路,3为入口,4为出口.要求从入口开始,从出口结束,按照下,左,上,右的顺序来搜索路径.输入描述:迷宫宽度w迷宫高度h迷宫第一行迷宫第二行迷宫第h输出描述:入口横坐标1入口纵坐标1横坐标2纵坐标2横坐标3纵坐标3横坐标4纵坐标4横坐标n—1纵坐标n—1出口横坐标n出口纵坐标n#include <iostream>#include <assert.h>usin......原创 2022-07-14 08:35:07 · 959 阅读 · 0 评论 -
西农大 数据结构 第二次作业
8 60 1 1 0 1 00 1 0 0 1 11 0 1 1 0 10 0 1 0 0 10 0 0 0 1 10 1 0 0 1 00 1 0 0 0 11 1 1 0 0 0原创 2022-07-14 08:37:05 · 570 阅读 · 0 评论 -
西农大 数据结构 习题
题目描述患者到医院看病的顺序是:先排队等候,再看病治疗。要求设计一个算法,模拟病人等候就诊的过程。其中:“病人到达”用命令“A”(或“a")表示,“护士让下一位就诊”用“N”(或"n")表示,“不再接收病人排队”用“S"(或“s")表示。输入描述:A(或a)病历号N(或n)s(或s)x(其它字符)输出描述:病历号为×的病人就诊若队列中有数据,输出队首元素,否则输出"无病人就诊”不再接收病人排队,并输出当前队列中所有病历号输入命令不合法......原创 2022-07-15 10:54:34 · 886 阅读 · 0 评论 -
西农大 数据结构 第二次作业
题目描述用顺序存储实现栈的初始化、入栈、出栈、取栈顶、判栈空操作。调用以上操作实现判断从键盘输入的括号序列是否匹配。输入描述:括号序列#(#为括号输入结束符号)输出描述:匹配或不匹配#include <iostream>using namespace std;#define maxSize 100template<class T>class SqStack{private: int base; int top; T *data;public:.原创 2022-07-15 10:54:48 · 814 阅读 · 0 评论 -
西农大 数据结构 习题
题目描述用链式存储结构实现对一个班级学生信息管理。设计程序求出每个人的平均成绩并按平均成绩由高到底排序后输出学生记录。输入描述:人数n人员记录1(格式为:学号姓名成绩1成绩2成绩3)人员记录2输出描述:人员记录×1人员记录y2人员记录z#include <iostream>using namespace std;#include <string>struct LinkNode { int s_num; string s_name; do....原创 2022-07-15 10:55:58 · 1009 阅读 · 0 评论 -
西农大 数据结构 习题 单链表
题目描述在单链表存储结构上实现基本操作:初始化、创建、插入、删除、查找、遍历、逆置、合并运算。输入描述:线性表长度nala2a3...an(数值有序,为降序)要插入到线性表中的数字x和插入的位置i要删除的数字的位置i要查找的数字×线性表长度mb1b2...bm(数值有序,为升序)输出描述:插入一个数字后的线性表a1a2...an+1删除一个数字后的线性表a1a2..an查找一个输入的数字后如果找到,输出该数字的位置i,如果没有找到,输出"Not.........原创 2022-07-15 10:57:28 · 793 阅读 · 0 评论 -
西农大 数据结构 习题
题目描述在顺序存储结构实现基本操作:初始化、创建、插入、删除、查找、遍历、逆置、合并运算。输入描述:请输入线性表La的长度:nala2a3..an(数值有序,为降序)请输入要插入到线性表La中的数字×和插入的位置i:xi请输入要删除数字的位置:i请输入要查找的数字:x请输入线性表长度:mb1b2...bom(数值有序,为升序)输出描述:插入一个数字后的线性表ala2...an+1删除一个数字后的线性表ala2...an查找一个......原创 2022-07-15 10:57:50 · 1391 阅读 · 0 评论 -
数据结构: 单链表
LinkedList.h#pragma once#include <iostream>using namespace std;template <class T>struct LinkNode { T data; LinkNode<T>* link; LinkNode(LinkNode<T>* ptr = NULL) { link = ptr; } LinkNode(const T& item, LinkNode<.原创 2022-07-20 11:27:24 · 385 阅读 · 0 评论 -
数据结构: 顺序表
1. SeqList.h#pragma once#include <iostream>using namespace std;#include <stdlib.h>//#include "LinearList.h"int const defaultSize = 100;template <class T>class SeqList {protected: T* data; int maxSize; int last; void reSi原创 2022-07-20 11:29:26 · 322 阅读 · 0 评论