PTA《数据结构与算法题目集(中文)》函数题第二题
题目地址
题目描述:实现顺序表的操作集
1.创建并返回一个空的顺序表 List MakeEmpty();
显然这线性表与普通链表的唯一区别是有一个Last变量告诉我们数组的最后一个元素的所在下标。因此我们只需要将变量Last初始化为-1即可。
List MakeEmpty()
{List L = (List) malloc( sizeof(struct LNode) );L->Last = -1;return L;
}
2.在线性表中查找元素X,成功则返回下标,失败返回ERROR(已定义的宏 ) Position Find( List L, ElementType X )
显然
Position Find( List L, ElementType X )
{Position P = 0;while(P <= L->Last){if( L->Data[P] == X ) break;P++;}if(P > L->Last ) return ERROR;else return P;
}
3.将元素X插入位置P,空间已满打印或位置不合法打印提示信息并返回0
bool Insert( List L, ElementType X, Position P )
首先检查空间是否已满,以及位置是否合法。值得注意的是由于这是顺序表,数据的存放必须是连续的,所以位置P所允许的位置最多到Last+1。然后我们将从P开始所有元素向后移一位,并在位置P置入新元素X。时间复杂度为O(n)。
bool Insert( List L, ElementType X, Position P )
{if(L->Last >= MAXSIZE-1){printf("FULL");return 0;} if(P < 0 || P > L->Last+1) {printf("ILLEGAL POSITION");return 0;}int cnt = L->Last;while(cnt >= P){L->Data[cnt+1] = L->Data[cnt];cnt--;}L->Data[P] = X;L->Last++;return 1;
}
4.删除位置P的元素 bool Delete( List L, Position P )
首先检查位置P是否合法,其值的范围应该在[0,Last]。然后从P位置开始后一位元素对前一位元素覆写,当执行完时,该被删除的元素自然而然地被删除了。此时不应忘记Last减一。时间复杂度为O(n)。
PTA《数据结构与算法题目集(中文)》函数题第二题相关推荐
- PTA数据结构与算法题目集6-4 6-3 6-8
PTA数据结构与算法题目集(中文) 6-4 链式表的按序号查找 ElementType FindKth( List L, int K ){int index = 0;while(L){++index; ...
- PTA数据结构与算法题目集 6-9 二叉树的遍历
PTA数据结构与算法题目集(中文) 6-9 二叉树的遍历 void InorderTraversal( BinTree BT ){if(BT==NULL)return;if(BT->Left){ ...
- PTA 数据结构与算法题目集(中文)
一:数据结构与算法题目(中文版) 7-2 一元多项式的乘法与加法运算 (20 分) 7-3 树的同构 (25 分) 7-4 是否同一棵二叉搜索树 (25 分) 7-6 列出连通集 (25 分)(详解) ...
- PTA 数据结构与算法题目集(中文) 7-10 公路村村通 (30分) 最小生成树(kruskal算法)
我的GIS/CS学习笔记:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes <一个浙江大学本科生的计算机.地理信息科学知识库 > 还有不少 ...
- PTA数据结构与算法题目集(中文) 函数题 (1)
4-1 单链表逆转 code: List Reverse(List head) {if(NULL==head|| NULL==head->Next)return head;List p;List ...
- 浙大PTA数据结构与算法题目集(中文)题解集复习用
文章目录 7-1 最大子列和问题 (20分)(dp或贪心) 7-2 一元多项式的乘法与加法运算 (20分) 7-3 树的同构 (25分) 7-4 是否同一棵二叉搜索树 (25分) 7-5 堆中的路径 ...
- PTA数据结构与算法题目集(中文)7-25
题意:找出M个俱乐部中最大朋友圈数量,朋友的朋友也朋友,所以可以采用并查集写此算法. 开始自己把题目理解错了,最后看了大神的写法终于明白了. #include <iostream> #in ...
- PTA数据结构与算法题目集(中文)7-36
Floyd算法求解: #include<stdio.h> #include<stdlib.h> #include<math.h> #define max 50005 ...
- PTA数据结构与算法题目集(中文)7-18
题意:有两个窗口A,B,题目给出A窗口处理完两个顾客,B窗口处理完一个顾客,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出.我们可以给出两个队列q1,q2分别表示A,B窗口,编号为奇数的顾客存 ...
- PTA数据结构与算法题目集(中文)7-45
map的应用: #include <cstdio> #include <cstring> #include <algorithm> #include <ios ...
最新文章
- go1.5及以上版本交叉编译
- OpenMP的环境变量
- 进程有一个全局变量 i,还有有两个线程。i++ 在两个线程里边分别执行 100 次,能得到的最大值和最小值分别是多少?
- 动态规划走楼梯_负重爬楼梯、过草地,服贸会六足机械人展示“送水到家”
- PHP URL的处理函数,php中url处理函数总结
- Vue中import引入模块路径时的@符号
- python 通达信上传云端_Python读取通达信本地数据
- 《A Practical Guide to Continuous Delivery》作者访谈录
- 锤子科技 php 面试,面试没通过 锤子新品遭面试者曝光
- 如何在Python中从stdin读取
- 【CV】如何使用Tensorflow提供的Object Detection API--3--手工标注数据
- 大数据分析的优势有哪些特点
- NOIp 2014 #5 解方程 Label:数论?
- java idle 机制_Flink中Idle停滞流机制(源码分析)
- maven 出现:Failed to execute goal on project...Could not resolve dependencies for project
- 在Android Studio 上为项目添加Git版本控制
- 【Docker镜像文件加载原理生产中重新制作并提交镜像文件案例演示】
- 【入门向】Navicat for MySQL的入门简单使用
- 游戏辅助制作核心--植物大战僵尸逆向之植物种植call(七)
- 汉语言文学专业c学校,理科生能报汉语言文学专业吗?哪些学校找理科生
热门文章
- 西门子200smart模拟量滤波防抖PLC程序,能实现电流电压和热电阻模拟量信号的采集
- python cerberus Validator参数校验
- 攻防世界-pwn-forgot
- Centos7 xfs_trans_read_buf_map metadata i/o error
- 【红队APT】钓鱼篇Office-CVE漏洞RLO隐藏压缩包释放免杀打包捆绑
- 〔转载〕从蓝色巨人到四海一家 IBM品牌塑造及转型
- 关于M1版Macbook Pro 安装JDK 方法
- 三、HTML5之文本元素
- armv6 可以通过什么方式检查内存泄露?
- 冷战背景下的计算机,冷战最疯狂项目:直接把大脑拆下来给战斗机器人机器人当CPU...