PTA 数据结构 6-2 顺序表基本操作
来源:互联网 发布:php截取一段字符串 编辑:程序博客网 时间:2024/06/06 14:29
6-2 顺序表基本操作(10 分)
本题要求实现顺序表元素的增、删、查找以及顺序表输出共4个基本操作函数。L是一个顺序表,函数Status ListInsert_Sq(SqList &L, int pos, ElemType e)是在顺序表的pos位置插入一个元素e(pos应该从1开始),函数Status ListDelete_Sq(SqList &L, int pos, ElemType &e)是删除顺序表的pos位置的元素并用引用型参数e带回(pos应该从1开始),函数int ListLocate_Sq(SqList L, ElemType e)是查询元素e在顺序表的位次并返回(如有多个取第一个位置,返回的是位次,从1开始,不存在则返回0),函数void ListPrint_Sq(SqList L)是输出顺序表元素。实现时需考虑表满扩容的问题。
函数接口定义:
Status ListInsert_Sq(SqList &L, int pos, ElemType e);Status ListDelete_Sq(SqList &L, int pos, ElemType &e);int ListLocate_Sq(SqList L, ElemType e);void ListPrint_Sq(SqList L);
其中 L 是顺序表。 pos 是位置; e 代表元素。当插入与删除操作中的pos参数非法时,函数返回ERROR,否则返回OK。
裁判测试程序样例:
//库函数头文件包含#include<stdio.h>#include<malloc.h>#include<stdlib.h>//函数状态码定义#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;//顺序表的存储结构定义#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef int ElemType; //假设线性表中的元素均为整型typedef struct{ ElemType* elem; //存储空间基地址 int length; //表中元素的个数 int listsize; //表容量大小}SqList; //顺序表类型定义Status ListInsert_Sq(SqList &L, int pos, ElemType e);Status ListDelete_Sq(SqList &L, int pos, ElemType &e);int ListLocate_Sq(SqList L, ElemType e);void ListPrint_Sq(SqList L);//结构初始化与销毁操作Status InitList_Sq(SqList &L){ //初始化L为一个空的有序顺序表 L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem)exit(OVERFLOW); L.listsize=LIST_INIT_SIZE; L.length=0; return OK;}int main() { SqList L; if(InitList_Sq(L)!= OK) { printf("InitList_Sq: 初始化失败!!!\n"); return -1; } for(int i = 1; i <= 10; ++ i) ListInsert_Sq(L, i, i); int operationNumber; //操作次数 scanf("%d", &operationNumber); while(operationNumber != 0) { int operationType; //操作种类 scanf("%d", & operationType); if(operationType == 1) { //增加操作 int pos, elem; scanf("%d%d", &pos, &elem); ListInsert_Sq(L, pos, elem); } else if(operationType == 2) { //删除操作 int pos; ElemType elem; scanf("%d", &pos); ListDelete_Sq(L, pos, elem); printf("%d\n", elem); } else if(operationType == 3) { //查找定位操作 ElemType elem; scanf("%d", &elem); int pos = ListLocate_Sq(L, elem); if(pos >= 1 && pos <= L.length) printf("%d\n", pos); else printf("NOT FIND!\n"); } else if(operationType == 4) { //输出操作 ListPrint_Sq(L); } operationNumber--; } return 0;}/* 请在这里填写答案 */
输入格式: 第一行输入一个整数operationNumber,表示操作数,接下来operationNumber行,每行表示一个操作信息(含“操作种类编号 操作内容”)。 编号为1表示插入操作,后面两个参数表示插入的位置和插入的元素值 编号为2表示删除操作,后面一个参数表示删除的位置 编号为3表示查找操作,后面一个参数表示查找的值 编号为4表示顺序表输出操作 输出格式: 对于操作2,输出删除的元素的值 对于操作3,输出该元素的位置,如果不存在该元素,输出“NOT FOUND”; 对于操作4,顺序输出整个顺序表的元素,两个元素之间用空格隔开,最后一个元素后面没有空格。
输入样例:
41 1 112 23 34
输出样例:
1311 2 3 4 5 6 7 8 9 10
//代码如下
Status ListInsert_Sq(SqList &L, int pos, ElemType e){ for(int i=L.length;i>=pos;--i) { L.elem[i]=L.elem[i-1]; } L.elem[pos-1]=e; L.length++; return 1;}Status ListDelete_Sq(SqList &L, int pos, ElemType &e){ e=L.elem[pos-1]; L.length--; for(int i=pos-1;i<L.length;i++) { L.elem[i]=L.elem[i+1]; } return 1;}int ListLocate_Sq(SqList L, ElemType e){ for(int i=0;i<L.length;i++) { if(L.elem[i]==e) { return i+1; } } return 0;}void ListPrint_Sq(SqList L){ printf("%d",L.elem[0]); for(int i=1;i<L.length;i++) { printf(" %d",L.elem[i]); } printf("\n");}
阅读全文
0 0
- PTA 数据结构 6-2 顺序表基本操作
- 6-2 PTA顺序表操作集
- PTA 6-1 顺序表基本操作(10 分)
- PTA 顺序表基本操作(10 分)
- PTA数据结构与算法题目集(中文)4-2 顺序表操作集 (20分)
- PTA 数据结构习题集(中文) 4-2顺序表操作集
- PTA-顺序表操作集
- 4-2 顺序表操作集 (20分) PTA
- 数据结构之顺序表的基本操作
- 数据结构:顺序表的基本操作
- 数据结构之顺序表基本操作
- 实现数据结构顺序表的基本操作
- 【C++/数据结构】顺序表的基本操作
- 数据结构-顺序线性表基本操作实现
- 【数据结构】顺序表的基本操作
- 【数据结构】顺序表的基本操作
- 数据结构顺序表相关基本操作练笔
- 数据结构-顺序表的基本操作
- 基于R语言的Kaggle案例分析学习笔记(三)
- 用fopen_s替代fopen,如果用fopen会报错
- java微信支付
- 1027. 打印沙漏(20)
- linux mysql源码安装
- PTA 数据结构 6-2 顺序表基本操作
- UVa 10128
- android selector详解
- 【c基础】对函数指针的详细理解
- 写给自己的JAVA工程师之路-计划
- 使用python实现归并排序
- 设计模式---命令模式
- spring boot 简介
- ubuntu自带截图工具--方便好用
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
微商利润分配图
利润率
利润率公式
利润率怎么算
营业利润率
销售利润率公式
平均利润率
资产利润率
资金利润率
投资利润率
资本金利润率
利润率公式数学
毛利润率计算公式
人工成本利润率
超市利润率
毛利润率
息税前利润率
平均利润率公式
成本利润率和销售利润率区别
利润率的公式
总利润率计算公式
家具销售利润率
便利店利润率
串串的利润率
行业利润率
产值利润率
利润率是
营业利润率计算公式
平均利润率计算公式
资产利润率计算公式
成本费用利润率公式
投资利润率计算公式
利润率计算公式是什么
企业利润率计算公式
利润表怎么填
利润表图片
利润表分析
利润表格式
利润表公式
负债表利润表
洗衣店利润分析表