顺序存储结构

# include<iostream>
# include<string>


using namespace std;


/*--------------------------------------
自定义单词含义
------------------------------------------*/
# define OK 0
# define ERROR 1
# define MAXSIZE 20


/*-------------------------------------
定义变量类型
---------------------------------------*/
typedef int Status;
typedef int Elemtype;


/*---------------------------------------
定义类
-----------------------------------------*/
typedef struct
{
Elemtype data[MAXSIZE];
int length;
}Sqlist;


/*-------------------------------------
声明函数
----------------------------------------*/
Status ElemGet(Sqlist, int, Elemtype *);
Status ListInsert(Sqlist *, int, Elemtype);
Status ListDelete(Sqlist *, int, Elemtype *);


/*------------------------------------------
主函数
--------------------------------------------*/
int main()
{
Sqlist Line;
Sqlist * pLine;
pLine = &Line;

Elemtype e;
Elemtype * pe;
pe = &e;


for (int i = 0; i < 10; i++)
{
Line.data[i] = i;
}
Line.length = 10;


for (auto c : Line.data)
cout << c << " " << endl;


// cout << Line.data[6] << " " << Line.data[7] << endl;
ElemGet(Line, 5, pe);
cout << e << "\n" << Line.data[6] << "\n"
<<Line.length<<"\n" << endl;


e = 11;
ListInsert(pLine, 5, e);
cout << Line.data[4] << "\n" <<Line.length
<<"\n" << endl;


ListDelete(pLine, 7, pe);
for (auto c : Line.data)
cout << c << endl;


system("pause");
return 0;
}


/*------------------------------------------
函数一:获得元素操作
--------------------------------------------*/
Status ElemGet(Sqlist L, int t, Elemtype * e)
{
if (t <= 0 || t > L.length)
return ERROR;
*e = L.data[t - 1];
return OK;
}


/*------------------------------------------
函数二:插入元素操作
---------------------------------------------*/
Status ListInsert(Sqlist * L, int t, Elemtype e)
{
if (t <= 0 || t > L->length)
return ERROR;
if (L->length == MAXSIZE)
return ERROR;


for (int i = L->length - 1; i >= t - 1; i--)
{
L->data[i + 1] = L->data[i];
}
L->data[t - 1] = e;


L->length++;


return OK;

}
/*-------------------------------------------
函数三:删除元素操作
---------------------------------------------*/
Status ListDelete(Sqlist *L, int t, Elemtype * e)
{
if (t <= 0 || t > L->length)
return ERROR;

*e = L->data[t - 1];
for (int i = t; i <= L->length - 1; i++)
L->data[i - 1] = L->data[i];


L->length--;


return OK;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值