静态数组的顺序表

Seqlist1.h头文件

#pragma once



#include <stddef.h>
#define SeqListMaxSize 1000
typedef char SeqListType;


typedef struct SeqList{
 SeqListType data[SeqListMaxSize];
size_t size;
}SeqList;


void SeqListInit(SeqList* seqlist);


void SeqListPushBack(SeqList* seqlist,SeqListType value);
void SeqListPopBack(SeqList* seqlist);
void SeqListPushFront(SeqList* seqlist,SeqListType value);
void SeqListPopFront(SeqList*seqlist);
void SeqListInsert(SeqList* seqlist, size_t pos,SeqListType value);

void SeqListErase(SeqList* seqllist,size_t pos);


seqlist1.c

#include"Seqlist1.h"


void SeqListInit(SeqList* seqlist){
  if(seqlist == NULL){
        return;
  }
   seqlist->size = 0;
}


void SeqListPushBack(SeqList*seqlist, SeqListType value){
  if(seqlist == NULL){
      return;
   }
  if(seqlist->size >=SeqListMaxSize){
   return;
   }


  seqlist->data[seqlist->size] = value;
  ++seqlist->size;
  return;


}

void SeqListPopBack(SeqList*seqlist){
   if(seqlist == NULL){
    return;


   }
   if(seqlist->size == 0){
   return;


  }
  --seqlist->size;
  return;


}


void SeqListPushFront(SeqList* seqlist,SeqListType value){
   if(seqlist == NULL){
     return;
   }
   if(seqlist->size >= SeqListMaxSize){
      return;


    }

++seqlist->size;
  size_t i = seqlist->size - 1;
  for(;i>0;--i){
   seqlist->data[i] = seqlist->data[i - 1];
  }
   seqlist->data[0]=value;
   return;
}
void SeqListPopFront(SeqList* seqlist){
  if(seqlist == NULL){
   return;
    }
   if(seqlist->size == 0){
   return;
  }
 size_t i = 0;
 for(;i<seqlist->size - 1;++i){
    seqlist->data[i] = seqlist->data[i+1];
  }
--seqlist->size;
return;

}

void SeqListInsert(SeqList* seqlist, size_t pos,SeqListType value){
  if(seqlist == NULL){
    return;
   }


   if(pos > seqlist->size){
    return;


  }
  if(seqlist->size >= SeqListMaxSize){
    return;
   }


   if(pos == 0){
   SeqListPushFront(seqlist,value);
   return;
  }


  ++seqlist->size;
  size_t i = seqlist->size -1;
 for(;i - 1 >= pos;--i){

    seqlist->data[i] = seqlist->data[i-1];

 }
 seqlist->data[pos] = value;
return;
}




void SeqListErase(SeqList* seqlist,size_t pos){
  if(seqlist == NULL){
    return;
  }
  if(seqlist->size == 0){
    return;
  }
  if(pos >= seqlist->size){
  return;
  }


  size_t i = pos;
  for(;i < seqlist->size-1;++i){
   seqlist->data[i] = seqlist->data[i + 1];
  }

   --seqlist->size;

 return;

}
//laaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
#include<stdio.h>

#define TEST_HEADER  printf("\n====================%s====================\n",__FUNCTION__);


void SeqListPrintChar(SeqList* seqlist,const char* msg){
    if(seqlist == NULL){
      printf("error");
   }
    printf("[%s]\n",msg);
    size_t i = 0;
    for(;i<seqlist->size;++i){

       printf("[%c]",seqlist->data[i]);

  }
     printf("\n");
}


void TestInit(){
  TEST_HEADER;
  SeqList seqlist;
  SeqListInit(&seqlist);
  printf("seqlist.size expect 0,actual %lu\n",seqlist.size);
}


void TestPushBack(){
  TEST_HEADER;


  SeqList seqlist;
  SeqListInit(&seqlist);
  SeqListPushBack(&seqlist,'a');
  SeqListPushBack(&seqlist,'f');
  SeqListPushBack(&seqlist,'s');
  SeqListPushBack(&seqlist,'g');


SeqListPrintChar(&seqlist,"The tail inserts four elements.");

}
void TestPopBack(){
  TEST_HEADER;
  SeqList seqlist;
  SeqListInit(&seqlist);
  SeqListPopBack(&seqlist);
  SeqListPrintChar(&seqlist,"dui kongshunxubiao  weishan");

  SeqListPushBack(&seqlist,'a');
  SeqListPushBack(&seqlist,'f');
  SeqListPushBack(&seqlist,'s');
  SeqListPushBack(&seqlist,'g');
  SeqListPopBack(&seqlist);
  SeqListPopBack(&seqlist);
  SeqListPrintChar(&seqlist,"The tail removes two elements");

}

void TestPushFront(){

  TEST_HEADER;

 SeqList seqlist;
  SeqListInit(&seqlist);
  SeqListPushFront(&seqlist,'a');
  SeqListPushFront(&seqlist,'b');
  SeqListPushFront(&seqlist,'c');
  SeqListPushFront(&seqlist,'d');


  SeqListPrintChar(&seqlist,"The head inserts four elements");


}
void TestPopFront(){
  TEST_HEADER;
  SeqList seqlist;
  SeqListInit(&seqlist);
  SeqListPopFront(&seqlist);
  SeqListPrintChar(&seqlist,"duikongshunxubiaotoushan");


  SeqListPushFront(&seqlist,'a');
  SeqListPushFront(&seqlist,'b');
  SeqListPushFront(&seqlist,'c');


  SeqListPopFront(&seqlist);

SeqListPrintChar(&seqlist,"The header deletes two elements.");


}
void TestInsert(){
  TEST_HEADER;
  SeqList seqlist;
  SeqListInit(&seqlist);




  SeqListPushBack(&seqlist,'a');
  SeqListPushBack(&seqlist,'b');
  SeqListPushBack(&seqlist,'c');
  SeqListPushBack(&seqlist,'d');


  SeqListInsert(&seqlist,0,'l');
  SeqListPrintChar(&seqlist,"0->l");


  SeqListInsert(&seqlist,2,'y');
  SeqListPrintChar(&seqlist,"2->y");
}


void TestErase(){

TEST_HEADER;
 SeqList seqlist;
 SeqListInit(&seqlist);




  SeqListPushBack(&seqlist,'a');
  SeqListPushBack(&seqlist,'b');
  SeqListPushBack(&seqlist,'c');
  SeqListPushBack(&seqlist,'d');


  SeqListErase(&seqlist,2);


  SeqListPrintChar(&seqlist,"delete 2");




}


int main(){
 TestInit();
 TestPushBack();
 TestPopBack();

 TestPushFront();

TestPopFront();

 TestInsert();

 TestErase();
 return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值