2024/4/1作业

main.c

#include <stdio.h>
#include "./seqlist_1.h"

int main(int argc, const char *argv[])
{
    Seqlist *sq = creats_seqlist();
    add(sq,100);
    add(sq,200);
    add(sq,300);
    add(sq,400);
    show(sq);

    insert(sq,500,2);   
    delete(sq,3);
    change(sq,600,3);
    show_index(sq,3);
    putchar(10);                                
    show(sq);
    return 0;
}

seqlist_1.c

#include <stdio.h>                                                  
#include <stdlib.h>                                                 
#include "./seqlist_1.h"                                            
                                                                    
Seqlist *creats_seqlist(){                                          
    Seqlist *ptr = (Seqlist*)malloc(sizeof(Seqlist));               
    if(NULL == ptr)                                                 
    {                                                               
        printf("创建失败");                                         
        return NULL;                                                
    }                                                               
                                                                    
    ptr->pos=0;                                                     
                                                                    
    return ptr;                                                     
}                                                                   
                                                                    
void add(Seqlist *ptr,int add){                                     
    if(ptr->pos < N){                                               
        ptr->data[ptr->pos] = add;                                  
        ptr->pos++;                                                 
    }                                                               
    else                                                            
    {                                                               
        printf("增加失败,内存已满");                               
    }                                                               
    return;                                                         
}                                                                   
void  insert(Seqlist*ptr,int num,int index)                         
{                                                                   
    if(index>=0&&index<=ptr->pos&&ptr->pos<N){                      
        ptr->pos++;                                                 
        for(int i=ptr->pos-1;i>=index+1;i--){                       
            ptr->data[i] = ptr->data[i-1];                          
        }                                                           
                                                                    
        ptr->data[index] = num;                                     
    }
    else{                                                           
        printf("下标有误\n");                                       
    }                                                               
    return;                                                            
}                                                                      
                                                                       
                                                                       
void delete(Seqlist *ptr,int index){                                   
    if(index>=0&&index<ptr->pos&&ptr->pos<N){                          
        for(int i=index;i+1<ptr->pos;i++)                              
            ptr->data[i] = ptr->data[i+1];                             
    }                                                                  
    else{                                                              
        printf("下标错误\n");                                          
    }                                                                  
    ptr->pos--;                                                        
    return;                                                            
}                                                                      
                                                                       
void change(Seqlist *ptr,int num,int index){                           
    if(index>=0 && index<ptr->pos && ptr->pos<N){                      
            ptr->data[index] = num;                                    
    }                                                                  
    else{                                                              
        printf("下标有误\n");                                          
    }                                                                  
    return;                                                            
}                                                                      
                                                                       
void show(Seqlist *ptr){ 
    for(int i=0;i<ptr->pos;i++){                                       
        printf("%d\t",ptr->data[i]);                                   
    }                                                                  
                                                                       
    putchar(10);                                                       
    return;                                                            
}

void show_index(Seqlist* ptr,int index)                                
{                                                                      
    printf("下标第%d位为%d",index,ptr->data[index]);                   
    return;                                                            
}                                                                      

seqlist_1.h

#ifndef __SEQLIST__
#define __SEQLIST__

#define N 100
typedef struct{
    int data[N];
    int pos;
}Seqlist;
     
Seqlist *creats_seqlist();
void add(Seqlist *ptr,int add);
void delete(Seqlist *ptr,int index);
void change(Seqlist *ptr,int num,int index);         
void show(Seqlist *ptr);
void insert(Seqlist*ptr,int num,int index);
void show_index(Seqlist* ptr,int index);             
#endif

执行结果

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值