数据结构之顺序表

//顺序表的创建与输出
#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);   
}

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值