加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数据结构作业4--线性表类型定义与顺序表操作(函数题)

发布时间:2020-12-15 04:53:40 所属栏目:百科 来源:网络整理
导读:6-1 顺序表创建和就地逆置 (10 分) 本题要求实现顺序表的创建和就地逆置操作函数。L是一个顺序表,函数ListCreate_Sq(SqList L)用于创建一个顺序表,函数ListReverse_Sq(SqList L)是在不引入辅助数组的前提下将顺序表中的元素进行逆置,如原顺序表元素依次

6-1 顺序表创建和就地逆置 (10 分)

本题要求实现顺序表的创建和就地逆置操作函数。L是一个顺序表,函数ListCreate_Sq(SqList &L)用于创建一个顺序表,函数ListReverse_Sq(SqList &L)是在不引入辅助数组的前提下将顺序表中的元素进行逆置,如原顺序表元素依次为1,2,3,4,则逆置后为4,1。

函数接口定义:

Status ListCreate_Sq(SqList &L);


void ListReverse_Sq(SqList &L);

裁判测试程序样例:

//库函数头文件包含

#include

#include

#include

//函数状态码定义

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

#define OVERFLOW -2

typedef int Status;

//顺序表的存储结构定义

#define LIST_INIT_SIZE 100

#define LISTINCREMENT 10

typedef int ElemType; //假设线性表中的元素均为整型

typedef struct{

ElemType* elem; //存储空间基地址

int length; //表中元素的个数

int listsize; //表容量大小

}SqList; //顺序表类型定义

Status ListCreate_Sq(SqList &L);

void ListReverse_Sq(SqList &L);

int main() {

SqList L;

ElemType *p;

if(ListCreate_Sq(L)!= OK) {

printf("ListCreate_Sq: 创建失败!!!n");

return -1;

}

ListReverse_Sq(L);

if(L.length){

for(p=L.elem;p

printf("%d ",*p);

}

printf("%d",*p);

}

return 0;

}

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

输入格式: 第一行输入一个整数n,表示顺序表中元素个数,接下来n个整数为表元素,中间用空格隔开。 输出格式: 输出逆置后顺序表的各个元素,两个元素之间用空格隔开,最后一个元素后面没有空格。

输入样例:

4


1 2 3 4

输出样例:

4 3 2 1

int n;

Status ListCreate_Sq(SqList &L)//顺序表的创建

{

scanf("%d",&n);

L.elem=(ElemType*)malloc(n*sizeof(ElemType));

if(!L.elem) return OVERFLOW;

L.length=n;

L.listsize=n;

for(int i=0; i

scanf("%d",&L.elem[i]);

return OK;

}

void ListReverse_Sq(SqList &L)

{

int tp;

for(int i=0; i

{

tp=L.elem[i];

L.elem[i]=L.elem[n-1-i];

L.elem[n-1-i]=tp;

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读