此文章系列为保存考研复习时的所有代码

顺序表进阶:

  • 从顺序表中删除具有最小值的元素(假设唯一)并有函数返回被删元素的值,空出的位置由最后一个元素填补,若顺序为空则显示错误信息并退出运行:
bool DeleteSqlistMin(Seqlist *p,int * x )
{if(p->size==0)return false;int min=p->array[0];int i=0;int temp=0;for(i=0;i<p->size;i++){if(min>p->array[i]){min=p->array[i];temp=i;}}p->array[temp]=p->array[p->size-1];p->size--;//这里答案上写了要删除最后一项,但根据题意,本人认为无伤大雅return true;
}

  • 设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1):
bool ReverseSqlist(Seqlist *L)//由于题目只要求了空间复杂度,所以刚拿到题目就想到了用双循环冒泡法
{if(L->size==0)return false;int temp=0;int i=0;int j=0;for(i=0;i<L->size-1;i++)for(j=0;j< L->size-i-1;j++){   temp=L->array[j]; L->array[j]=L->array[j+1];L->array[j+1]=temp;}return true;
}bool ReverseSqlist2(Seqlist *L)//标答给出的折半互换法
{if(L->size==0)return false;int temp=0;int i=0;for(i=0;i<=L->size/2;i++){   temp=L->array[i]; L->array[i]=L->array[L->size-i-1];L->array[L->size-i-1]=temp;}return true;
}

  • 对长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数据元素:
bool DeleteElem(Seqlist * L,int x )
{if(L->size==0)return false;int count= 0;int distance =0;int i=0;for(i=0;i<L->size-1;i++){if(L->array[i]==x){count++;}elseL->array[i-count]=L->array[i];}L->size-=count;return true;
}

  • 从有序顺序表中删除旗帜在给定值s与t之间(s<t)的所有元素,如果不合理则显示错误信息并退出运行:
bool DelteBtwElem(Seqlist * L,int s,int t )
{int count_s=0;int count_t=0;for(int i = 0;i<L->size;i++){if(L->array[i]==s){count_s=i;break;}else if(L->array[i]!=s&&i==L->size-1){    printf("can not found s! n");return false;}}for(int i = 0;i<L->size;i++){if(L->array[i]==t&& (L->array[i+1]>L->array[i]||i==L->size-1)){count_t=i;break;}else if(L->array[i]!=t&&i==L->size-1){    printf("can not found t! n");return false;}}for(int i = count_t  ; i<L->size;i++){L->array[i- count_s -2]=L->array[i+1];}L->size-= count_t - count_s +1;return true;
}

顺序表中有效元素的长度_408数据结构之顺序表进阶(1)相关推荐

  1. 顺序表中有效元素的长度_图解线性表,启动数据结构的大门,深刻理解链式存储和顺序存储!...

    数据结构之线性表 前言 ❝ 提到数据结构,可能会有很多人马上联想到栈,队列,树,哈希表,图等各种经常提到的数据结构,但是我们去忽略了本质,这些都是抽象的逻辑结构,追本溯源,数据结构中的存储方式只有两种 ...

  2. c语言顺序表所需的头文件,数据结构【顺序表】

    1.线性表定义 线性表是一种线性结构.线性结构的特点是数据元素之间是一种线性关系,数据元素"一个接一个的排列".在一个线性表中数据元素的类型是相同的,或者说线性表是由同一类型的数据 ...

  3. DB2: Reorg之后表中记录在磁盘上存放的顺序

    对DB2的表做重组之后,表中记录在磁盘上的存放顺序可能会发生改变,那么到底是怎么存放的呢?之前写过一篇文章,链接如下: Db2中"SELECT * FROM TABLE"时返回记录 ...

  4. Python办公自动化实践1:从多个excel表中提取数据并汇总到一个工作表页中,表格,抽取,sheet

    Python办公自动化实践1:从多个excel表中提取数据并汇总到一个工作表页中,表格,抽取,sheet 发表时间:2020-04-26 问题:从当前目录或子目录中查询符合条件的excel表格,并从这 ...

  5. 使用insert向表中添加数据MySQL_使用INSERT语句向表中插入数据(MSSQLSERVER版)

    做开发的同仁对于向数据库中插入数据可谓是太普通不过了,也没什么说的,一般都是采用常用的INSERT INTO [(字段列表)] VALUES(字段值列表),这样的方式进行操作.今天,我要给大家介绍的是 ...

  6. mysql中怎么删除表中的一列数据_mysql如何删除表中一行数据?

    mysql中使用DELETE语句删除表中一行数据,语句为"DELETE FROM 表名称 WHERE 列名称 = 值".删除所有行的语句为"DELETE FROM tab ...

  7. mysql从一个表查出写入另一个表_sql语句 怎么从一张表中查询数据插入到另一张表中...

    展开全部 sql语句从一张表中查询数据插入到另一张表中的方法如下:e68a843231313335323631343130323136353331333365653762 1.select * int ...

  8. SQL Server 将一个表中字段的值复制到另一个表的字段中

    原文:SQL Server 将一个表中字段的值复制到另一个表的字段中 具体方法如下 一:update 表2 set (要插入的列名)= select 表1.某一列 from 表1 left jion ...

  9. 触发器实现当一个表中字段改变时同时改变另一个表中字段值

    触发器实现当一个表中字段发生变化时同时改变另一个表中字段 1.建表 新建两个表一个叫做Telephonics用来存放航班全部字段的数据,主键为SelfNum航迹号:另一个一个叫做FlightAndSe ...

最新文章

  1. Curator selector
  2. 关于字符串排序的别的规则
  3. Properties文件的XML格式
  4. Java面试题2021,文末有福利
  5. gprof, Valgrind and gperftools - an evaluation of some tools for application level CPU profiling on
  6. Unhandled exception: org.springframework.beans.factory.BeanDefinitionStoreException
  7. java jaxb注解xmlnull_java – 将空值表示为xml jaxb中的空元素
  8. Win7纯净版系统Windows未能启动,文件Winload.exe的解决方法
  9. 2021年最新Java学习路线图指南
  10. 【毕业设计】基于大数据的电影数据爬取分析可视化系统
  11. 涉密计算机违规外联检查,涉密计算机违规外联及移动存储介质使用检查的研究与实现...
  12. 超立方体(n方体)Qn:递推式 和 性质
  13. js 实现简单区块链
  14. 电线超负荷的危险与原因
  15. 计算机处理器采用多核,电脑处理器多核心与高主频哪个更重要【详细介绍】
  16. PS 滤镜算法原理——浮雕效果
  17. Semantic Mapping in ROS学习及代码运行
  18. 在云服务器重装系统后vscode连不上服务器的解决
  19. 环洋市场调研-2021年全球颜料红48:3行业调研及趋势分析报告
  20. 已知一棵完全二叉树存于顺序表sa中,sa.elem[1..sa.length]含结点值,试编写算法由此顺序存储结构建立该二叉树的二叉链表。

热门文章

  1. ProgressDialog使用总结
  2. IE10完美体验——资料参考
  3. jQuery formValidator表单校验代码生成器ver1.0
  4. 程序员到底需要什么样的需求文档?
  5. 产品经理如何专业吐槽产品?友谊小船从此不再翻
  6. PMCAFF | 从200块到300万,史上最全自媒体报价单
  7. Javascript获取屏幕与页面尺寸
  8. SVN -客户端URL地址修改命令
  9. Linux例行工作crontab
  10. APR-Util 1.5.1 发布