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;

}

}

  1. 从顺序表中删除其值在给定值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;

}

}

  1. 从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同。

分析:顺序表是个有序表,所以值相同的元素存储空间连续。

解题思路:第一个元素不重复,依次遍历顺序表,如果值相同就保留下来,如果值不相同就删除。

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;

}

}

数据结构经典代码题(从小白开始)相关推荐

  1. 手把手教你考研《数据结构》代码题

    手把手教你写考研数据结构代码题 计算机考研,一旦达到了后半程,那么数据结构的代码题,就会成为很多学生的拦路虎,让很多学生都痛苦不堪,为了帮助大家更好的学习代码题,所以整理了考研数据结构一些必考的代码题 ...

  2. 2021版王道数据结构课后代码题全部实现

    历时2个多月,把21版王道数据结构的课后代码题全部实现了一遍,一共96道题 文件目录结构: 编程环境:Visual Studio 2019 编程语言:C/C++ 其中,每道题都是一个独立的cpp文件, ...

  3. 考研之数据结构常见代码题01

    一.线性表 1.在一个递增有序的顺序表中插入元素Y,得到的顺序表仍然有序. 该算法的思想主要分有三步:找到插入位置.插入.整个顺序表的长度加一. //find方法是用来寻找所插入元素的合适位置int ...

  4. java求最大公约数_10道java经典算法题,小白必备,每一题都能提升你的java能力...

    JAVA经典算法 跪求关注,祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早上贵子,从不掉发! 更多java资料可以私信我领取! [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每 ...

  5. C语言必须会写的10道经典题(小白必看!)

    对于初学C语言的小白们来说,提高进步最快的方式无疑是刷题,反复刷反复思考优化,这里给大家列出几道C语言入门经典好题,对于小白们锻炼思维很不错,下面就一起来看看吧~ 文章目录 前言 1.写代码将三个整数 ...

  6. c++ 经典代码_C语言经典100题(31)

    1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(30)中第三部分编程题的答案: #include int main( ){ long ge,shi,qian,wan,x; printf( ...

  7. 【图解经典算法题】如何用一行代码解决约瑟夫环问题

    约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼. 问题描述:编号为 1-N 的 N 个 ...

  8. 【23考研】计算机408数据结构代码题强化阶段划重点(王道书)

    视频链接:[23考研]10分钟带你整理408数据结构强化阶段代码题复习重点 本篇只适合考408的同学,请自主命题的同学自觉右上角×掉 因为王道书为了照顾自主命题的同学,所以很多算法也给出了代码实现,实 ...

  9. 关于牛客网代码题 数据读取问题的 小白指南

    作为一个代码小白,刷题是一件如攀登珠峰一样困难的事情 找对登山装备就不是一件简单的事情 关于牛客网上代码题的逐行读取数据的方式,居然也困扰了我很久 终于在善良同窗的帮助下弄清楚了"套路&qu ...

最新文章

  1. node.js express php,nodejs开发——express路由与中间件
  2. 在 win10 环境下,设置自己写的 程序 开机自动 启动的方法
  3. python数据库操作之pymysql模块和sqlalchemy模块(项目必备)
  4. vs2005添加live555工程
  5. [资源]基于 Pytorch 的 TorchGAN开源了!
  6. oracle 10g dsg,【ORACLE】relink oracle 10g 数据库
  7. python重载运算符乘法_Python | 使用乘法运算符创建一个字符串的多个副本
  8. 第二次作业+105032014149
  9. Java基础篇:如何使用圆括号
  10. 用python语言写一个简单的计算器
  11. ORA-01034:oracle not available. ORA-27101:shared memory realm does not exist 错误解决办法之一
  12. 使用“VMware ThinApp”绿化软件
  13. 设置新版谷歌浏览器自动启用flash
  14. IOS 音乐播放器
  15. 大学生必备APP,让你玩出更多花样
  16. python如何爬虫股票数据_python爬虫实例,股票数据定向爬虫
  17. js如何调用电脑的摄像头
  18. rgb文件格式的文件读取与转换
  19. 微服务——通用分销系统设计
  20. hdu 2006 求奇数的乘积

热门文章

  1. 统计一组整数中正数、负数和零的个数
  2. 通过Java读取csv文件内容
  3. 芯片破壁者(六.上):摩尔定律的一次次“惊险”续命
  4. MySQL灵魂100问
  5. HTML+CSS+JavaScript计时器实现新年倒计时
  6. whatsApp皮肤配置流程
  7. iOS gitignore文件
  8. Excel快捷键大全(四)(九耶-钛伦特)
  9. android三个骰子摇动动画,【Android】OpenGL ES实现3D抛骰子
  10. 史上最严防沉迷新规出炉:再也不能愉快地玩游戏跟刷抖音了?