题目地址

题目描述:实现顺序表的操作集

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《数据结构与算法题目集(中文)》函数题第二题相关推荐

  1. PTA数据结构与算法题目集6-4 6-3 6-8

    PTA数据结构与算法题目集(中文) 6-4 链式表的按序号查找 ElementType FindKth( List L, int K ){int index = 0;while(L){++index; ...

  2. PTA数据结构与算法题目集 6-9 二叉树的遍历

    PTA数据结构与算法题目集(中文) 6-9 二叉树的遍历 void InorderTraversal( BinTree BT ){if(BT==NULL)return;if(BT->Left){ ...

  3. PTA 数据结构与算法题目集(中文)

    一:数据结构与算法题目(中文版) 7-2 一元多项式的乘法与加法运算 (20 分) 7-3 树的同构 (25 分) 7-4 是否同一棵二叉搜索树 (25 分) 7-6 列出连通集 (25 分)(详解) ...

  4. PTA 数据结构与算法题目集(中文) 7-10 公路村村通 (30分) 最小生成树(kruskal算法)

    我的GIS/CS学习笔记:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes <一个浙江大学本科生的计算机.地理信息科学知识库 > 还有不少 ...

  5. PTA数据结构与算法题目集(中文) 函数题 (1)

    4-1 单链表逆转 code: List Reverse(List head) {if(NULL==head|| NULL==head->Next)return head;List p;List ...

  6. 浙大PTA数据结构与算法题目集(中文)题解集复习用

    文章目录 7-1 最大子列和问题 (20分)(dp或贪心) 7-2 一元多项式的乘法与加法运算 (20分) 7-3 树的同构 (25分) 7-4 是否同一棵二叉搜索树 (25分) 7-5 堆中的路径 ...

  7. PTA数据结构与算法题目集(中文)7-25

    题意:找出M个俱乐部中最大朋友圈数量,朋友的朋友也朋友,所以可以采用并查集写此算法. 开始自己把题目理解错了,最后看了大神的写法终于明白了. #include <iostream> #in ...

  8. PTA数据结构与算法题目集(中文)7-36

    Floyd算法求解: #include<stdio.h> #include<stdlib.h> #include<math.h> #define max 50005 ...

  9. PTA数据结构与算法题目集(中文)7-18

    题意:有两个窗口A,B,题目给出A窗口处理完两个顾客,B窗口处理完一个顾客,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出.我们可以给出两个队列q1,q2分别表示A,B窗口,编号为奇数的顾客存 ...

  10. PTA数据结构与算法题目集(中文)7-45

    map的应用: #include <cstdio> #include <cstring> #include <algorithm> #include <ios ...

最新文章

  1. go1.5及以上版本交叉编译
  2. OpenMP的环境变量
  3. 进程有一个全局变量 i,还有有两个线程。i++ 在两个线程里边分别执行 100 次,能得到的最大值和最小值分别是多少?
  4. 动态规划走楼梯_负重爬楼梯、过草地,服贸会六足机械人展示“送水到家”
  5. PHP URL的处理函数,php中url处理函数总结
  6. Vue中import引入模块路径时的@符号
  7. python 通达信上传云端_Python读取通达信本地数据
  8. 《A Practical Guide to Continuous Delivery》作者访谈录
  9. 锤子科技 php 面试,面试没通过 锤子新品遭面试者曝光
  10. 如何在Python中从stdin读取
  11. 【CV】如何使用Tensorflow提供的Object Detection API--3--手工标注数据
  12. 大数据分析的优势有哪些特点
  13. NOIp 2014 #5 解方程 Label:数论?
  14. java idle 机制_Flink中Idle停滞流机制(源码分析)
  15. maven 出现:Failed to execute goal on project...Could not resolve dependencies for project
  16. 在Android Studio 上为项目添加Git版本控制
  17. 【Docker镜像文件加载原理生产中重新制作并提交镜像文件案例演示】
  18. 【入门向】Navicat for MySQL的入门简单使用
  19. 游戏辅助制作核心--植物大战僵尸逆向之植物种植call(七)
  20. 汉语言文学专业c学校,理科生能报汉语言文学专业吗?哪些学校找理科生

热门文章

  1. 西门子200smart模拟量滤波防抖PLC程序,能实现电流电压和热电阻模拟量信号的采集
  2. python cerberus Validator参数校验
  3. 攻防世界-pwn-forgot
  4. Centos7 xfs_trans_read_buf_map metadata i/o error
  5. 【红队APT】钓鱼篇Office-CVE漏洞RLO隐藏压缩包释放免杀打包捆绑
  6. 〔转载〕从蓝色巨人到四海一家 IBM品牌塑造及转型
  7. 关于M1版Macbook Pro 安装JDK 方法
  8. 三、HTML5之文本元素
  9. armv6 可以通过什么方式检查内存泄露?
  10. 冷战背景下的计算机,冷战最疯狂项目:直接把大脑拆下来给战斗机器人机器人当CPU...