//顺序表的创建与输出
#include<stdio.h>
#define MAXSIZE 4
typedef int typedata;
typedef struct data{
int size;
int a[MAXSIZE];
}seq_list;
//顺序表的创建
void create(seq_list *s)
{
int i;
printf("input sequence size\n");
scanf("%d",&i);
s->size = i;
printf("input sequence data\n");
for(i=0;i<s->size;++i)
scanf("%d",&s->a[i]);
}
//顺序表的输出
void print(seq_list s)
{
int i;
if(!s.size) printf("线性表为空的!\n");
else
for(i=0;i<s.size;++i)
{
printf("%5d",s.a[i]);
}
} //2014
//对顺序表进行初始化操作
void init_seq_list(seq_list *s)
{
s->size=0;
}
// 顺序表后部进行插入?
void insert_seq_list(seq_list *s,int x)
{
if(s->size==MAXSIZE) {
printf("-----顺序表已经满了");
exit(1);
}
s->size = s->size+1;
s->a[s->size]=x;
}
//查找顺序表中节点为x的位置
int find_num_seq_list(seq_list s, int x)
{
int i=0;
while(i<s.size && s.a[i] != x)
{
i++;
}
return (i<s.size?i:-1);
}
//取得顺序表中第i个节点的值
int get_data_pos_list(seq_list s,int i)
{
if(i<0 || i>=s.size)
{
printf("查找指定位置不存在!");
exit(1);
}else
return s.a[i];
}
//顺序表的插入
void insert_pos_sql_list(seq_list *s, int position, int x )
{
int i;
if(s->size == MAXSIZE)
{
printf("\n 顺序表为满的不能插入\n");
exit(1);
}
if(position < 0 || position >s->size)
{
printf("插入的位置不对\n");
exit(1);
}
for(i=s->size;i>position;i--)
{
s->a[i]=s->a[i-1];
}
s->a[position]=x;
s->size = s->size+1;
}
//顺序表的删除操作
void delete_pos_seq_list(seq_list *s,int position)
{
int i;
if(s->size ==0 )
{
printf("顺序表是空的\n");
}
if(position<0 || position >= s->size)
{
printf("指定的删除位置不存在\n");
}
for(i = position;i < s->size-1; i++)
{
s->a[i]=s->a[i+1];
}
s->size--;
}
int main()
{
int j;
seq_list s;
create(&s);
// init_seq_list(&s);
// print(s);
//insert_seq_list(&s,2);
// j=find_num_seq_list(s,3);
//j=get_data_pos_list(s,2);
// insert_pos_sql_list(&s,2,1000);
delete_pos_seq_list(&s,2);
//printf("j=%d\n",j);
print(s);
// print(s);
}