
王道-数据结构
要加油呀~^O^
在校就读生,希望优快云这平台可以记录下我在学习计算机路程上的点点滴滴,以此见证我的成长。
展开
-
P17-10数列循环左移(数组逆置)
这里写目录标题1.题目描述2.代码描述3运行结果1.题目描述将n个整数存放在一维数组R中。设计一个在时间和空间两方面都尽可能高效的算法。将R中保存的序列循环左移p个位置,即将R中的数据由(X0,X1,…Xn-1)变换为Xp,Xp-1,…Xn-1,X0,X1,…Xp-12.代码描述#include<iostream>#include<algorithm>#define InitSize 12void Reverse01(int A[],int l,int r) /原创 2021-04-08 15:33:33 · 467 阅读 · 1 评论 -
P17-9查找数值为x的元素,若找到则将其与后继元素相交换
查找数值为x的元素,若找到则将其与后继元素相交换1问题描述2核心代码3完整代码4执行结果1问题描述问题描述:线性表(a1,a2,a3,…,an)中的元素递增有序且按顺序存储于计算机中。设计一算法,完成用最少时间在表中查找数值为x的元素,若找到则将其与后继元素想交换,若找不到则将其插入表中并使表中元素仍旧有序。2核心代码二分模板 while (l < r)//形式二:开始二分查找(自己习惯的)此处 l<r,则不存在该元素判断语句为l>=r { mid = (l + r)原创 2021-04-08 14:56:27 · 318 阅读 · 0 评论 -
P17-8数组中两个顺序表位置互换
数组中两个顺序表位置互换1.题目分析1.1实现效果1.2分析过程2.核心代码3.完整代码(C++)4.运行结果1.题目分析已知在一维数组 A[0, … m+n-1]中依次存放着两个顺序表 (a1, a2,.,am)和(b,b2, …b.).试编写程序,将数组中两个顺序表的位置互换,即将(b1, b2, … , bn) 放在(a1 a2, … , am)的前面。1.1实现效果1.2分析过程图来自于 https://blog.youkuaiyun.com/cnds123321/article/deta原创 2021-04-07 19:55:52 · 543 阅读 · 0 评论 -
P17-7两个有序表合并为一个有序表
1题目要求题目:将两个有序顺序表合并为一个新的有序顺序表,并有函数返回结果顺序表2基本思想与后面将要学到的归并排序算法思想一致,非常重要的一个算法3核心代码bool Merge(SeqList L1, SeqList L2,SeqList &L3) //L3需要返回,故带引用{ if (L1.length + L2.length > L3.MaxSize) return false; int i = 0, j = 0, k = 0; while(i < L1.l原创 2021-04-07 16:20:07 · 348 阅读 · 0 评论 -
P17-6王道课后题-从有序顺序表中删除所有其值重复的元素
从有序顺序表中删除所有其值重复的元素题目描述:从有序顺序表中删除所有其值重复的元素,使表中所有元素值均不相同1.代码如下#include<stdlib.h>#include<stdio.h>#define MaxSize 100int len,s, t;//输入长度typedef struct{ int data[MaxSize]; int length;}SeqList;void PrintList(SeqList &L){ for (原创 2021-04-07 14:55:15 · 570 阅读 · 0 评论 -
王道课后题P17-4和P17-5题对比
王道课后题P17-4和P17-5题对比1.有序表删除指定区间元素代码如下执行结果2.顺序表删除指定区间元素2.代码执行结果1.有序表删除指定区间元素从有序顺序表中中删除其值在给定值s和t之间的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行。代码如下#include<stdlib.h>#include<stdio.h>#define MaxSize 100int len,s, t;//输入长度typedef struct{ int data[原创 2021-04-07 11:19:23 · 168 阅读 · 0 评论 -
P17-3删除线性表中所有值为x的数据元素
删除线性表中所有值为x的数据元素题目描述1.代码如下:2.执行结果题目描述对长度为n的顺序比爱L,编写一个时间复杂度为O(n)的,空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数据元素算法一比较容易理解,算法二如图所示其核心思想是一样的,算法一是计算删除的数据num,那么修改后的数组真实下标为i-num,最后是L.data[i - num] = L.data[i];算法二是记录的未删除数据num,那么修改后的数组真实下标为num,最后是L.data[num] = L.data[原创 2021-03-31 16:20:33 · 1158 阅读 · 0 评论 -
王道-P17-2用O(1)的空间复杂度讲顺序表元素逆置
O(1)就是最低的时空复杂度了,也就是耗时/耗空间与输入数据大小无关,无论输入数据增大多少倍,耗时/耗空间都不变。 哈希算法就是典型的O(1)时间复杂度,无论数据规模多大,都可以在一次计算后找到目标(不考虑冲突的话)1.代码如下:#include<iostream>using namespace std;#define MaxSize 100typedef struct{ int data[MaxSize]; int length;}SeqList;void fuzhi.原创 2021-03-31 14:40:30 · 172 阅读 · 0 评论 -
P17-1.王道课后题-删除最小值元素
从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删除元素的值。空出的位置由最后一个元素填补,若顺序表为空则显示出错信息并退出运行。1.代码如下:#include<stdlib.h>#include<stdio.h>#define MaxSize 100typedef struct { int data[MaxSize]; int length;}SeqList;void PrintList(SeqList &L) { for (int .原创 2021-03-31 14:15:02 · 195 阅读 · 0 评论