一、题目
题目:实现顺序表各种基本运算的算法
要求:
1、建立一个顺序表,输入n个元素并输出;
2、查找线性表中的最大元素并输出;
3、在线性表的第i个元素前插入一个正整数x;
4、删除线性表中的第j个元素;
5、将线性表中的元素按升序排列;
6、将线性表中的元素就地逆序(只允许用一个暂存单元);
二、源代码
为了方便大家食用,直接讲代码放出来,大家可以直接复制去运行的试一下。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
typedef int SLType;
typedef struct seqlist
{
SLType* a;
int size;
int capicity;
}SL;
SL sl;
//线性表的初始化
void SLinit(SL* ps)
{
assert(ps);
ps->a = NULL;
ps->capicity = ps->size = 0;
}
//开辟空间
void SLcapicity(SL* ps)
{
assert(ps);
if (ps->size == ps->capicity)
{
int newcapicity = ps->capicity == 0 ? 4 : ps->capicity * 2;
int* tmp = (int*)realloc(ps->a, newcapicity * sizeof(SLType));
if (tmp == NULL)
{
printf("realloc fail\n");
exit(-1);
}
ps->a = tmp;
ps->capicity