#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MaxSize 100
typedef struct SqList
{
int Data[MaxSize];
int length;
}SqList;
int InitList(SqList &L){
memset(L.Data,0,sizeof(L));
L.length=0;
return 1;
}
int ClearList(SqList &L){
L.length=0;
return 1;
}
int ListEmpty(SqList L){
if(L.length==0){
printf("List L is Empty\n");
return 1;
}
else{
printf("List L isn't Empty\n");
return 0;
}
}
int ListLength(SqList L){
printf("%d\n",L.length);
return 1;
}
int ListInsert(SqList &L,int i,int e)
{
if(i<0||i>MaxSize-1){
printf("Position if Wrong\n");
return 0;
}
L.length++;
if(L.length>MaxSize){
printf("List L if full\n");
return 0;
}
int j;
for(j=L.length;j>i;j--)
{
L.Data[j]=L.Data[j-1];
}
L.Data[i]=e;
return 1;
}
int ListDelete(SqList &L,int i,int &e){
if(i<0||i>L.length){
printf("Delete position i is illegal\n");
return 0;
}
int j;
e=L.Data[i-1];
for(j=i-1;j<L.length-1;j++)
L.Data[j]=L.Data[j+1];
L.length--;
printf("%d of L is %d Delete\n",i,e);
return 1;
}
int GetElem(SqList L,int i,int &e){
e=L.Data[i];
return 1;
}
int LocateElem(SqList L,int e,int &i){
int j;
for(j=0;j<L.length;j++)
if(L.Data[j]==e){
i=j;
printf("%d is %d of L\n",e,i+1);
return 1;
}
printf("%d is Not Found\n",e);
return 0;
}
int PrintfList(SqList L){
int i;
if(L.length==0)
return 0;
for(i=0;i<L.length;i++)
printf("%d ",L.Data[i]);
printf("\n");
return 1;
}
int main(){ //测试代码随意改
int n,i,e;
SqList L;
InitList(L);
scanf("%d",&n);
for(i=1;i<=n;i++){
ListInsert(L, i-1, i);
}
PrintfList(L);
i=7;
ListDelete(L, i, e);
PrintfList(L);
GetElem(L, 6, e);
LocateElem(L, 3, i);
return 0;
}
顺序表基本操作
最新推荐文章于 2024-03-12 22:53:02 发布
本文详细介绍了一种使用C语言实现顺序表的各种基本操作的方法,包括初始化、清空、判断是否为空、获取长度、插入元素、删除元素、查找元素、打印顺序表等。通过具体的代码示例,展示了如何在顺序表中进行有效的数据管理和操作。
摘要由CSDN通过智能技术生成