#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 50
//静态分配顺序表
typedef struct
{
int sq[MAXSIZE];
int length;
}SQList;
void init(SQList *L)//初始化
{
L->length=0;
int i = 0;
for(i;i<L->length;i++){
L->sq[i]=0;
}
}
void Insert(SQList *L,int index,int val){//插入 添加元素
int i;
if(index<=L->length){
if(index<L->length){
L->length++;
for(i=L->length;i>=index;i--){
L->sq[i]=L->sq[i-1];
}
}else{
L->length++;
}
L->sq[index]=val;
}else{
printf("插入位置不合适!\n");
}
}
void traversal(SQList *L){//遍历元素
int i= 0;
for(i;i<L->length;i++){
printf("%d\n",L->sq[i]);
}
}
int length(SQList *L){
return L->length;
}
void Delete(SQList *L,int index){//删除指定位置的元素
int a=index;
if(index<L->length){
for(a;a<L->length-1;a++)
{
L->sq[a]=L->sq[a++];
}
L->length--;
} else{
printf("索引值输入错误!\n");
}
}
int main(int argc, char *argv[]) {
SQList L;
init(&L);
int a;
while(1){
printf("请输入要进行的操作!\n");
scanf("%d",&a);
switch(a){
case 1:
init(&L);
printf("初始化成功!\n");
break;
case 2:
printf("顺序表中的元素有:\n");
traversal(&L);
break;
case 3:
printf("请输入插入元素的位置索引和元素的数值!\n");
int val;
int index;
scanf("%d %d",&index,&val);
Insert(&L,index,val);
break;
case 4:
printf("请输入删除元素位置的索引!\n");
int indexa;
scanf("%d",&indexa);
Delete(&L,indexa);
break;
case 5:
printf("当前顺序表有%d个有效元素!\n",length(&L));
break;
}
}
traversal(&L);
return 0;
}
顺序表——静态分配
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、静态树表的查找对有序表的查找,如使用折半查找方法,是在“等概率”的前提下进行的,如果查找概率不一样,折半查找就...
- 前言 今天在看Android ContentProvider实现的时候,突然想到了Java类在new的过程中,静态...