#include <stdio.h>
#define MAXLEN 100
typedef int DataType;
void InitList(SeqList *L);
void CreateList(SeqList *L , int n);
int GetElem(SeqList *L , int i , DataType *x);
int Locate(SeqList *L , DataType x);
int InsElem(SeqList *L , int i , DataType x);
int DelElem(SeqList *L , int i , DataType *x);
void display(SeqList *L);
Typedef struct
{
DataType data[MAXLEN];
int Length;
}SeqList;
SeqList L;
int main()
{
return 0;
}
void InitList(SeqList *L)
{
L->Length = 0;
//初始化顺序表为空
}
void CreateList(SeqList *L , int n)
{
printf("请输入%d个整数:",n);
for(int i = 0 ; i < n ; i++){
scanf("%d",&L->data[i]);
}
L->Length = i;
}
int GetElem(SeqList *L , int i , DataType *x)
{
// if(i<1 || i>L->Length){
// return 0;
// }else{
// *x = L->data[i-1];
// return 1;
// }
(i<1 || i>L->Length)?0:1;
}
int Locate(SeqList *L , DataType x)
{
int i=0;
while(i<L->Length && L->data[i]!=x){
i++;
}
// if(i>L->Length){
// return 0;
// }else{
// return i+1;
// }
(i>L->Length)?0:(i+1);
}
int InsElem(SeqList *L , int i , DataType x)
{
int j;
if(L->Length>=MAXLEN){
printf("顺序表已满!");
return -1;
}
if(i<1||i>L->Length+1){
printf("插入位置出错!");
return 0;
}
if(i==L->Length+1){
L->data[i-1]=x;
L->Length++;
return 1;
}
for(j=L->Length-1;j>=i-1;j--){
L->data[j+1] = L->data[j];
L->data[i-1]=x;
L->Length++;
return 1;
}
}
int DelElem(SeqList *L , int i , DataType *x)
{
int j;
if(L->Length==0){
printf("顺序表为空!");
return 0;
}
if(i<1 || i>L->Length){
printf("不存在第i各元素");
return 0;
}
*x = L->data[i-1];
for(j=i;j<L->Length;j++){
L->data[j-1] = L->data[j];
}
L->Length--;
return 1;
}
void display(SeqList *L)
{
int i;
for(i=0;i<L->Length;i++){
printf("%5d",L->data[i]);
}
}
数据结构:线性表顺序存储基础代码
最新推荐文章于 2024-01-13 10:47:40 发布
本文介绍了如何使用C语言定义并实现顺序表,包括初始化、创建列表、获取元素、定位元素、插入和删除元素的方法,以及显示列表内容。重点展示了顺序表的基本操作流程和关键函数的实现细节。
1190

被折叠的 条评论
为什么被折叠?



