顺序表的建立和基本操作

本题要求实现顺序表的基本操作。
函数定义:初始化
Status InitList(SqList *L);
插入操作
Status ListInsert(SqList *L,int i,ElemType e);
删除操作
Status ListDelete(SqList *L,int i,ElemType &e);
查找操作
Status GetElem(SqList *L,int i,ElemType &e);

其中List结构定义如下:typedef struct {
ElemType *elem;  //存储表元素的数组指针
int length;        //表长度
int listsize;       //数组尺寸
} SqList;

裁判测试程序样例:函数被调用测试。

#include<stdio.h> // NULL, printf()等
#include<stdlib.h> // malloc()等

#define TRUE 1
#define FALSE 0
#define OVERFLOW -2
#define OK 1
#define ERROR 0
typedef int Status;
//-------- 线性表的动态分配顺序存储结构 -----------
#define LIST_INIT_SIZE 100 //顺序表存储空间初始尺寸
#define LIST_INCREMENT 10 //顺序表存储空间分配增量
typedef int ElemType; //顺序表元素的数据类型为整数
//存储结构定义:顺序表
typedef struct {
ElemType *elem; //存储表元素的数组指针
int length; //表长度
int listsize; //数组尺寸
} SqList;
//-------- 线性表的基本运算 -----------------------------
//运算1:初始化空顺序表L
Status InitList(SqList *L);
//运算2:销毁顺序表L
void DestroyList(SqList *L) {
free(L->elem); //释放表的数组存储空间
L->elem=NULL; //清空指向数组的指针及表示表长度、数组尺寸的指示变量
L->length=0;
L->listsize=0;
}
//运算3:在顺序表L中第i个位置前插入新元素e
Status ListInsert(SqList *L,int i,ElemType e) ;
//辅助函数:显示顺序表元素
void print(SqList *L) {
ElemType e;
printf("%s",“list:”);
for(int i=1; i<=L->length; i++) {
printf("%3d", L->elem[i-1]);
}
printf("\n");
}
//运算5:返回L中数据元素个数
int ListLength(SqList *L) {
return L->length;
}
//运算6:用e返回L中第i个元素的值
Status GetElem(SqList *L,int i,ElemType &e) ;

Status ListDelete(SqList *L,int i,ElemType &e) ;

void main(void) {
SqList q, *L;
ElemType e;
L=&q;
InitList(L);
ListInsert(L, 1, 10);
ListInsert(L, 2, 20);
ListInsert(L, 3, 30);
ListInsert(L, 4, 40);
printf(“length:%d\n”, L->length);
print(L); //顺序表的第1次显示
//以下由学生给出实际代码
ListInsert(L, 2, 17);//在位置2插入整数7
ListInsert(L, 5, 15);//在位置5插入整数5
ListInsert(L, 1, 13);//在位置1插入整数3
ListInsert(L, 2, 11);//在位置2插入整数1
//以上由学生给出实际代码
printf(“length:%d\n”, L->length);
print(L); //顺序表的第2次显示

//查找
GetElem(L,2,e);
printf("the 2th elem:%d\n",e);
GetElem(L,4,e);
printf("the 4th elem:%d\n",e);//****以下由学生给出实际代码****ListDelete(L,2,e);//删除位置2的元素
ListDelete(L,3,e);//删除位置3的元素
ListDelete(L,5,e);//删除位置5的元素
//****以上由学生给出实际代码****
printf("length:%d\n", L->length);
print(L); //顺序表的第3次显示DestroyList(L);

}

/* 请在这里填写答案 */

输入样例:无
输出样例:在这里给出相应的输出。例如:length:4

list: 10 20 30 40
length:8
list: 13 11 10 17 20 30 15 40
the 2th elem:11
the 4th elem:17
length:5
list: 13 10 20 30 40

顺序表的建立和基本操作相关推荐

  1. 顺序表的建立及基本操作

    实验内容 1.建立一个顺序表,输入n个元素并输出: 2.查找线性表中的最大元素并输出: 3.在线性表的第i个元素前插入一个正整数x: 4.删除线性表中的第j个元素: 5.将线性表中的元素按升序排列: ...

  2. 十六、广义表的建立与基本操作

    十六.广义表的建立与基本操作 文章目录 十六.广义表的建立与基本操作 题目描述 解题思路 上机代码 补充说明 题目描述 采用"头尾法存储广义表,实现以下广义表的操作: 1.Status Cr ...

  3. 顺序表和单链表基本操作的实现

    1.顺序表的建立.取指定元素.返回指定元素位置. 2.顺序表中插入新元素.删除指定元素操作的实现. 3.单链表的建立.取指定元素.返回指定元素位置. 4.单链表中插入新元素.删除指定元素操作的实现. ...

  4. 7-3 学生顺序表的建立

    完成对一个顺序表的建立,表中的每个元素是同学们的学号.姓名和三门课程的成绩,输入5个同学的信息,然后显示在屏幕上.(要求利用顺序表的基本操作) 输入格式: 首先收入学生人数5,然后依次输入5个学生的学 ...

  5. 顺序表的建立、查找、插入、删除

    顺序表:顺序表是线性表的顺序储存结构 ,顺序表就是将线性表中的数据元素按照线性顺序存储到指定位置开始的.一块连续的存储空间中. 顺序表c++代码: #include<bits/stdc++.h& ...

  6. 稀疏矩阵的三元组顺序表存储表示及基本操作

    /* Name: 稀疏矩阵的三元组顺序表存储表示及基本操作 Copyright:  Author: 巧若拙  Date: 27-10-14 21:28 Description:  ---------- ...

  7. 数据结构(C语言)顺序表的定义及基本操作

    顺序表的定义及基本操作 一.数据结构:顺序表的定义,创建,基本运算,实现 二.全部代码 定义顺序表 #include<stdio.h> #include<malloc.h> # ...

  8. 顺序表的建立,插入,删除,二分(折半)查找,监视哨查找,冒泡排序,选择排序,直接插入排序

    数据结构课程中学的顺序表,在顺序表中进行删除,查找,排序. 第一次编辑,排版什么的可能有不对的地方,但是程序我跑过了,应该是没问题的,这个其实是我期末上机考试的题. 注释还蛮多的,所以我就直接把代码贴 ...

  9. 数据结构之【线性表】(顺序表、链表的基本操作实现)

    概念 线性表:是N个数据元素的有限序列. 顺序表:用一组地址连续的存储单元依次存储[线性表 ]的数据元素.(区别于有序表:表中的数据元素存在非递增或非递减有序) 链表:用一组任意的存储单元来存储[线性 ...

最新文章

  1. Redux源码浅析系列(二):`combineReducer`
  2. openresty+consul动态配置更新(服务变更发现)
  3. nginx下面server配置
  4. pythonappend教程_对python append 与浅拷贝的实例讲解
  5. 烘烤店LOGO在线设计制作教程
  6. [Flex] ButtonBar系列——labelFunction用户提供的函数,在每个项目上运行以确定其标签...
  7. Thread多线程一起执行睡眠,同时分开执行,实例
  8. 力扣 26.删除有序数组中的重复元素
  9. 上海电力学院linux大作业,上海电力电路大作业2重点.docx
  10. vivox6android版本5.1,vivo X6 Plus的手机系统是什么?能升级安卓5.0吗?
  11. 使用jquery实现局部刷新DIV
  12. MySQL性能优化的21个最佳实践 和 mysql使用索引
  13. Redis集群添加数据报错(error) CLUSTERDOWN The cluster is down
  14. ubuntu 安装node.js
  15. Alphago再下一城,人机大战能告诉我们什么?
  16. php strpos ctf,CTF php代码审计 strpos()函数漏洞 XXE漏洞xinclude()
  17. 界面色彩渐变效果的实现
  18. 在OpenCV里绘制直线、圆、中文等图形
  19. 2021-02-03-ctf-如来十三掌
  20. 数学建模算法与应用:综合评价与决策方法(1)理想解法

热门文章

  1. Eclipse各版本代号一览表以及官网上有很多版本的eclipse,下载哪个版本比较合适呢?
  2. Android异步消息处理机制之looper机制
  3. 爱了!京东新产算法宝典在Github上爆火,成功激起了老夫的少女心!
  4. 「csp模拟试题 201903-2」二十四点 C/C++ 100分
  5. Maven第3篇:详解maven解决依赖问题
  6. 解决桌面图标无法拖动之绝招
  7. linux 处理匹配文本的前后行
  8. C语言中二维字符数组的定义和初始化
  9. Java并发基础知识(五)
  10. python-求两个字符串的连续最长公共子串