当前位置: 首页 > news >正文

顺序表练习题

1. 设顺序表中的元素递增有序,编写一个算法,将元素x插入顺序表L中的适当位置,以保持该顺序表的有序性。

void sortInsert(List *l,int x){//假设表是有序的if(l->length==MAXSIZE)exit(1);//表已满,无法插入for(int i=0;i<l->length;i++){if(l->data[i]>=x){ //合适的位置//执行后移操作for(int j=l->length-1; j>i;j--){l->data[j+1]=l->data[j];}//插入l->data[i]=x;l->length++;return; //跳出}}//如果循环结束了都还没有插入,则代表它比所有元素都要大,位置放在最后一个l->data[l->length++]=x;
}

​ 优化版:

void sortInsert(List *l, int x) {if (l->length == MAXSIZE) {fprintf(stderr, "错误:表已满,无法插入!\n");exit(EXIT_FAILURE);}int i;// 找插入位置(从后往前找更高效)for (i = l->length - 1; i >= 0 && l->data[i] > x; i--) {l->data[i + 1] = l->data[i];}// 插入到合适位置l->data[i + 1] = x;l->length++;
}

2. 编写算法实现顺序表的的就地逆置。

void ReverseList(List *l){if(l->length==0)return;for(int i=0,j=l->length-1; i<j;i++,j--){int temp = l->data[i];l->data[i]=l->data[j];l->data[j]=temp;}
} 
http://www.gsyq.cn/news/43315.html

相关文章:

  • 关于一种计算递归次数题的思路
  • 前端框架深度解析:Vue 从入门到实战,掌握渐进式开发核心 - 实践
  • 练习上传
  • 重组蛋白表达技术|HEK293细胞蛋白表达|高效重组蛋白生产服务
  • RK3576在智能工程机械中的应用|三屏八摄AI视觉解决方案
  • 做题笔记23
  • 毒盘未转存仅支持在线观看30s
  • AI元人文:理论自省与客观评估
  • 完整教程:《以 Trae 为桥:高效集成豆包 1.6 API 的实践与思考》
  • 从零开始实现简易版Netty(十) MyNetty 通用编解码器解决TCP黏包/拆包问题
  • 【刷题笔记】AT 经典 90 题
  • CF1758E Tick, Tock
  • javabean和pojo的区别
  • 2025北京一对一辅导/补习/培训/家教/网课推荐榜:金博教育领衔,3家优质机构凭个性化服务出圈,适配多元学习需求
  • Typecho Joe 使用第三方插件开启文章侧边导肮目录 - AutocJS
  • 高级程序语言设计个人作业第四次
  • 什么是 Feed 流?
  • preeee - when
  • 调整 Halo2 Joe 主题友情链接页面样式
  • 基于单片机的元胞自动机仿真系统设计 - 详解
  • (鲜花)万宁五子棋 v0.2
  • 2025年海外仓服务最新推荐企业,欧洲海外仓、美国海外仓、亚马逊海外仓、TEMU海外仓、独立站海外仓服务商解析
  • 实用指南:RSA加密从原理到实践:Java后端与Vue前端全栈案例解析
  • Ubuntu 中创建全局可访问的共用目录
  • 开源 C++ QT QML 开发(十五)通讯--http下载 - 实践
  • 2025年11月不锈钢加工装饰制品优质厂家推荐榜:加工、屏风、栏杆等品类精选
  • JT808,JT1078 —— AAC编码 —— 部标机语音对讲Java实现
  • DP 总结
  • 2025-11-07 早报新闻
  • 低代码开发的核心流程