本题要求实现顺序表的操作集。

函数接口定义:

List MakeEmpty();
Position Find( List L, ElementType X );
bool Insert( List L, ElementType X, Position P );
bool Delete( List L, Position P );
其中List结构定义如下:
typedef int Position;
typedef struct LNode *List;
struct LNode {ElementType Data[MAXSIZE];Position Last; /* 保存线性表中最后一个元素的位置 */
};

各个操作函数的定义为:

List MakeEmpty():创建并返回一个空的线性表;

Position Find( List L, ElementType X ):返回线性表中X的位置。若找不到则返回ERROR;

bool Insert( List L, ElementType X, Position P ):将X插入在位置P并返回true。若空间已满,则打印“FULL”并返回false;如果参数P指向非法位置,则打印“ILLEGAL POSITION”并返回false;

bool Delete( List L, Position P ):将位置P的元素删除并返回true。若参数P指向非法位置,则打印“POSITION P EMPTY”(其中P是参数值)并返回false。

输入样例:
6
1 2 3 4 5 6
3
6 5 1
2
-1 6

输出样例:
FULL Insertion Error: 6 is not in.
Finding Error: 6 is not in.
5 is at position 0.
1 is at position 4.
POSITION -1 EMPTY Deletion Error.
FULL Insertion Error: 0 is not in.
POSITION 6 EMPTY Deletion Error.
FULL Insertion Error: 0 is not in.

题目思路:
难度不大,细心的按照代码多走几遍,就把这些基本操作都学会了,一遍学不会没关系,不要着急,多来几遍,毕竟这些操作都是基础的基础。

List MakeEmpty()
{List head = (List)malloc(sizeof(struct LNode));head->Last = -1;return head;
}
Position Find(List L, ElementType X)
{for (int i = 0; i <= L->Last; i++){if (L->Data[i] == X)return i;}return ERROR;
}
bool Insert(List L, ElementType X, Position P)
{if (L->Last == MAXSIZE - 1){printf("FULL");return false;}else if (P < 0 || P > L->Last + 1)  //注意这里是L->Last+1是上界,而不是MAXSIZE是上界{printf("ILLEGAL POSITION");return false;}else {for (int j = L->Last; j >= P; j--){L->Data[j+1] = L->Data[j];}L->Data[P] = X; L->Last++;return true;}
}
bool Delete(List L, Position P)
{if (P < 0 || P >L->Last){printf("POSITION %d EMPTY",P);return false;}else{for (int j = P; j < L->Last; j++)L->Data[j] = L->Data[j+1];L->Last--;}
}

顺序表操作集 (20 分)相关推荐

  1. 6-5 顺序表操作集 (20 分)(创建,查找,插入,删除)以及顺序表的理解

    顺序表: 线性表的顺序存储 线性表的顺序存储是指在内存中用地址连续的一块存储空间顺序存放线性表的各元素 在程序设计语言中,一维数组在内存中占用的存储空间就是一组连续的存储区域,因此,用一维数组来表示顺 ...

  2. 1-1 顺序表操作集 (20 分)

    本题要求实现顺序表的操作集. 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L ...

  3. 6-5 链式表操作集 (20分)

    本题要求实现链式表的操作集. 函数接口定义: Position Find( List L, ElementType X ); List Insert( List L, ElementType X, P ...

  4. PTA:6-2顺序表操作集(20分)

    大一下半期数据结构 数据结构题目集 PTA:顺序表操作集(20分) 本题要求实现顺序表的操作集. 函数接口定义 List MakeEmpty(); Position Find( List L, Ele ...

  5. (PTA数据结构与算法) 6-2 顺序表操作集 ——请告诉我什么是顺序表!!!

    6-2 顺序表操作集 (20 分) 本题要求实现顺序表的操作集. 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); b ...

  6. 递增有序顺序表的插入 (20分) 实验目的:1、掌握线性表的基本知识 2、深入理解、掌握并灵活运用线性表。3、熟练掌握线性表的存储结构及主要运算的实现 已知顺序表L递增有序,将X插入到线性表的适当位置

    递增有序顺序表的插入 (20分) 实验目的:1.掌握线性表的基本知识 2.深入理解.掌握并灵活运用线性表.3.熟练掌握线性表的存储结构及主要运算的实现 已知顺序表L递增有序,将X插入到线性表的适当位置 ...

  7. 数据结构的顺序表操作集

    按照题目来讲比较好,如题: 本题要求实现顺序表的基本操作集,如初始化.查找.插入.删除等操作. 稍微说一下,这几个操作是非常非常重要的,希望你们看完我的代码可以自己思考一下为什么要这样,为什么会这样, ...

  8. 带头结点的链式表操作集

    6-6 带头结点的链式表操作集 (20 分) 本题要求实现带头结点的链式表操作集. 函数接口定义: List MakeEmpty(); Position Find( List L, ElementTy ...

  9. 【PTA】6-1 顺序表基本操作(10 分)

    题目来自 网络与信息安全-数据结构作业1-数据结构基本概念 6-1 https://fancyking.ml/archives/71 原题描述 6-1 顺序表基本操作(10 分) 本题要求实现顺序表元 ...

  10. 1、输入四个整数,按照从小到大顺序输出。(20分)

    题目: /* 1.输入四个整数,按照从小到大顺序输出.(20分) */ 代码: 注:题目说的是四个数的排序,我就直接写了个冒泡排序 public class One207 {public static ...

最新文章

  1. Java项目:中小医院信息管理系统(java+Springboot+ssm+mysql+maven+jsp)
  2. android relativelayout 点击事件,Android Relativelayout点击背景行为
  3. 多选框位置调整_URPC 2019 水下目标检测竞赛冠军方案:多图像融合增强
  4. html flash 循环播放,在网页中插入flv格式的flash视频怎么让其循环播放_html/css_WEB-ITnose...
  5. pandas常见的时间处理函数
  6. BZOJ1509: [NOI2003]逃学的小孩(树的直径)
  7. python增强对比度_python增加图像对比度的方法
  8. UVA10800 Not That Kind of Graph【模拟+绘图】
  9. CLR VIA C#(一)
  10. Linux常用命令介绍(一)——文件与文件夹操作相关命令
  11. 【Linux常用指令整理8】别名、输入/输出重定向、管道、命令连接符、命令替换符...
  12. rapidminer基础使用
  13. appfuse mysql_Appfuse:起步
  14. SketchUp插件开发(一)简介
  15. 计算机桌面不显示时间,怎么把时间显示在桌面
  16. 计算机无法读取移动光驱,外置光驱无法读取光盘怎么解决
  17. 图论专项shortest_paths:UVa 10246
  18. java数据透视表算法_用Java Steams创建数据透视表
  19. 如何使用 Windows 电脑向 Android 设备安装 apk 应用
  20. python猴子分桃问题_用python实现【五猴分桃】问题

热门文章

  1. javascript中replace的正则表达式语法
  2. 序列最小最优化算法(SMO) SVM凸优化求
  3. centos7安装最新稳定版nginx
  4. LINK : fatal error LNK1104: 无法打开文件“ucrtd.lib”
  5. php 当前时间 当前时间戳和数据库里取出的时间datetime格式进行比较大小
  6. SpringMVC (三)处理器映射器的配置和AbstractController的使用
  7. CRS-1714:Unable to discover any voting files
  8. MySQL优化步骤和my.cnf优化配置
  9. 地理编码涉及的专项技术
  10. bzoj 1503: [NOI2004]郁闷的出纳员 (splay)