数据结构经典代码题(从小白开始)
1.设计一个高效算法,将顺序表L的所有元素逆置,要求算法空间复杂度为常数级
算法思想:依次将顺序表L前半部分的元素与顺序表后半部分的元素进行交换。
void swap(Sqlist &L){
Elemtype temp;//定义一个辅助空间用于交换
int i=0;
for(i=0;i<L.length/2;i++){
temp=L.data[i];
L.data[i]=L.data[L.length-i-1];//数据从0开始
L.data[L.length-i-1]=temp;
}
}
2.对长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的元素。
算法思想:遍历顺序表,用k记录顺序表中值为x的个数,让其中元素不等于x的向前移动k个单位量。
void InS(SqList &L,Elemtype x){
for(int i=0;i<L.length;i++){
int k=0;
if(L.data[i]==x)
k++;
else
L.data[i-k]=L.data[i];
L.length=L.length-k;
}
}
- 从顺序表中删除其值在给定值s与t之间的所有元素(包含s,t且s<t),如果s或t不合理或顺序表为空,显示出错误信息并退出
算法思想:
void Rst(SqList &L,Elemtype s,Elemtype t){
int k=0;
if(L.length==0||s>=t)
return false;
for(int i=0;i<L.length;i++){
if(L.data[i]>=s&&L.data[i]<=t)
k++;
else
L.data[i-k]=L.data[i];
L.length=L.length-k;
return true;
}
}
- 从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同。
分析:顺序表是个有序表,所以值相同的元素存储空间连续。
解题思路:第一个元素不重复,依次遍历顺序表,如果值相同就保留下来,如果值不相同就删除。
void(SqList &L){
if(L.length==0)
return false;
int i=0,j=1;
for(j=1;j<L.length;j++){
if(L.data[i]!=L.data[j])
i++;
L.data[i]=L.data[j];//如果i与j的值不同保留下来
L.length=i+1;
return true;
}
}
数据结构经典代码题(从小白开始)相关推荐
- 手把手教你考研《数据结构》代码题
手把手教你写考研数据结构代码题 计算机考研,一旦达到了后半程,那么数据结构的代码题,就会成为很多学生的拦路虎,让很多学生都痛苦不堪,为了帮助大家更好的学习代码题,所以整理了考研数据结构一些必考的代码题 ...
- 2021版王道数据结构课后代码题全部实现
历时2个多月,把21版王道数据结构的课后代码题全部实现了一遍,一共96道题 文件目录结构: 编程环境:Visual Studio 2019 编程语言:C/C++ 其中,每道题都是一个独立的cpp文件, ...
- 考研之数据结构常见代码题01
一.线性表 1.在一个递增有序的顺序表中插入元素Y,得到的顺序表仍然有序. 该算法的思想主要分有三步:找到插入位置.插入.整个顺序表的长度加一. //find方法是用来寻找所插入元素的合适位置int ...
- java求最大公约数_10道java经典算法题,小白必备,每一题都能提升你的java能力...
JAVA经典算法 跪求关注,祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早上贵子,从不掉发! 更多java资料可以私信我领取! [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每 ...
- C语言必须会写的10道经典题(小白必看!)
对于初学C语言的小白们来说,提高进步最快的方式无疑是刷题,反复刷反复思考优化,这里给大家列出几道C语言入门经典好题,对于小白们锻炼思维很不错,下面就一起来看看吧~ 文章目录 前言 1.写代码将三个整数 ...
- c++ 经典代码_C语言经典100题(31)
1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(30)中第三部分编程题的答案: #include int main( ){ long ge,shi,qian,wan,x; printf( ...
- 【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼. 问题描述:编号为 1-N 的 N 个 ...
- 【23考研】计算机408数据结构代码题强化阶段划重点(王道书)
视频链接:[23考研]10分钟带你整理408数据结构强化阶段代码题复习重点 本篇只适合考408的同学,请自主命题的同学自觉右上角×掉 因为王道书为了照顾自主命题的同学,所以很多算法也给出了代码实现,实 ...
- 关于牛客网代码题 数据读取问题的 小白指南
作为一个代码小白,刷题是一件如攀登珠峰一样困难的事情 找对登山装备就不是一件简单的事情 关于牛客网上代码题的逐行读取数据的方式,居然也困扰了我很久 终于在善良同窗的帮助下弄清楚了"套路&qu ...
最新文章
- node.js express php,nodejs开发——express路由与中间件
- 在 win10 环境下,设置自己写的 程序 开机自动 启动的方法
- python数据库操作之pymysql模块和sqlalchemy模块(项目必备)
- vs2005添加live555工程
- [资源]基于 Pytorch 的 TorchGAN开源了!
- oracle 10g dsg,【ORACLE】relink oracle 10g 数据库
- python重载运算符乘法_Python | 使用乘法运算符创建一个字符串的多个副本
- 第二次作业+105032014149
- Java基础篇:如何使用圆括号
- 用python语言写一个简单的计算器
- ORA-01034:oracle not available. ORA-27101:shared memory realm does not exist 错误解决办法之一
- 使用“VMware ThinApp”绿化软件
- 设置新版谷歌浏览器自动启用flash
- IOS 音乐播放器
- 大学生必备APP,让你玩出更多花样
- python如何爬虫股票数据_python爬虫实例,股票数据定向爬虫
- js如何调用电脑的摄像头
- rgb文件格式的文件读取与转换
- 微服务——通用分销系统设计
- hdu 2006 求奇数的乘积