C语言实现数据结构顺序存储
#include
<stdio
.h
>
#include
<stdlib
.h
>
#include
<malloc
.h
>
#define
MAXSIZE 10
typedef int DataType
;
typedef struct
{
DataType data
[MAXSIZE];
int length
;
}SqList
;
void InitSqList(SqList
*L);
void ShowSqList(SqList
*L);
void InsertSqList(SqList
*L,int local
,int val
);
void DeleteSqList(SqList
*L,int local
);
int
SeekSqList(SqList
*L,int num
);
void main()
{
SqList
L;
int local
;
InitSqList(&L);
printf("初始数组:\n");
ShowSqList(&L);
for(local
= 1;local
<= MAXSIZE;local
++)
{
InsertSqList(&L,local
,local
*10);
}
printf("\n插入元素后的数组:\n");
ShowSqList(&L);
DeleteSqList(&L,5);
printf("\n删除后的数组:\n");
ShowSqList(&L);
printf("\n");
local
= SeekSqList(&L,80);
printf("\n待查找元素的位置:local = %d\n",local
);
}
void InitSqList(SqList
* L)
{
L->length
= 0;
}
void ShowSqList(SqList
*L)
{
int i
;
for(i
= 0; i
< L->length
;i
++)
{
printf("%d\t",L->data
[i
]);
}
}
void InsertSqList(SqList
*L,int local
,int val
)
{
int j
;
int i
;
i
= local
- 1;
if(L->length
== MAXSIZE)
{
printf("数组元素已满,不允许继续插入元素!");
exit(1);
}
else if(i
< 0 || i
> L->length
)
{
printf("插入的位置不合法!");
exit(1);
}
else
{
for(j
= L->length
- 1;j
>= i
;j
--)
{
L->data
[j
+ 1] = L->data
[j
];
}
L->data
[i
] = val
;
L->length
++;
}
}
void DeleteSqList(SqList
*L,int local
)
{
int i
= local
- 1;
int j
;
if(i
< 1 || i
> L->length
)
{
printf("删除位置不合法!");
exit(1);
}
else
{
for(j
= i
+ 1;j
< L->length
;j
++)
{
L->data
[j
-1] = L->data
[j
];
}
L->length
--;
}
}
int
SeekSqList(SqList
*L,int num
)
{
int temp
;
int i
;
for(i
= 0; i
< L->length
;i
++)
{
if(num
== L->data
[i
])
{
temp
= i
;
break;
}
}
if(i
== L->length
)
{
printf("元素不存在!");
exit(1);
}
return temp
+ 1;
}
转载请注明原文地址: https://yun.8miu.com/read-110111.html