线性表的顺序存储
2019-05-14 本文已影响0人
始于尘埃
我与数据结构有个约会,带你领略不一样的数据结构!
#include <stdio.h>
#include <stdlib.h>
#define Maxsize 100
typedef int ElemType;
//定义
typedef struct{
ElemType data[Maxsize];
int length; //当前长度
}Sqlist;
//创建
void CreatList(Sqlist &L,int n){
int i = 0;
//初始化
L.length = 0;
//用户输入n位元素
for(i;i<n;i++){
scanf("%d",&L.data[i]);
}
L.length = n;
}
//插入元素
bool InsertList(Sqlist &L,int i,ElemType e){
//判断合法性
if(i<1 || i>Maxsize+1){
return 0;
}
if(L.length > Maxsize){
return 0;
}
//挪动
for(int j = L.length;j>=i;j--){
L.data[j] = L.data[j-1]; //从后往前挪
}
//插入
L.data[i-1] = e;
L.length++;
return true;
}
//删除
bool DeleList(Sqlist &L,int i,int &e){
//判断合法性
if(i<1 || i>L.length){
return false;
}
e=L.data[i-1];
for(int j=i;j<L.length;j++){
L.data[j-1] = L.data[j];
}
L.length--;
return true;
}
//输出
void PrintList(Sqlist L){
int len = L.length;
for(int k =0;k<len;k++){
printf("->%d",L.data[k]);
}
printf("\n");
}
int main()
{
int e;
Sqlist l;
CreatList(l,5);
PrintList(l);
InsertList(l,2,9);
PrintList(l);
DeleList(l,2,e);
PrintList(l);
system("pause");
return 0;
}