⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 顺序表.c

📁 这是数据结构的课程设计的关于顺序表的源代码. 主要包括顺序表的一些基本功能
💻 C
字号:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define INCREACE 10
#define SIZE 100
typedef struct{
   int *elem;
   int length;
   int listsize;        
}Sqlist;
Inital(Sqlist *L,int m){
    L=(Sqlist*)malloc(sizeof(Sqlist));
    if(!L) exit(0);          
    L->elem=(int *)malloc(SIZE*sizeof(int));
    if(!L->elem) exit(0);
    int i=0;
    for(i;i<m;i++){
    L->elem[i]=i+1;     
    }
    L->length=m;
    L->listsize=SIZE;
}
Destroy(Sqlist *L){
   L->elem=NULL;         
   L->length=0;
   L->listsize=0;
   free(L);               
}
Clear(Sqlist *L){
   L->elem=NULL;         
   L->length=0;
   L->listsize=0;              
}
int ListIsEmpty(Sqlist *L){
   if(L->length==0){
    return 0;             
   }else return 1;              
}
int Listlength(Sqlist *L){
    return L->length;
}
int GetElem(Sqlist *L,int i){
    if(i<1||i>L->length) exit(0);
    int e=*(L->elem+i-1);
    return e;
}
ListInsert(Sqlist *L,int i,int e){
    if(i<1||i>L->length) exit(0); 
    if(L->length>=L->listsize){
      int *new=(int *)realloc(L->elem,(L->listsize+INCREACE)*sizeof(int));
      if(new==NULL) exit(0);
      L->elem=new;
      L->listsize+=INCREACE;                      
    } 
    int *q=&(L->elem[i-1]);
    int *p=&(L->elem[L->length-1]);
    for(p;p>=q;--p)
          *(p+1)=*p;
          *q=e;
          ++L->length;       
}
Listdelete(Sqlist *L,int i){
   int *p,*q;
   if(i<1||i>L->length) exit(0);
   p=&(L->elem[i-1]);
   q=&(L->elem[L->length-1]);
   for(++p;p<=q;++p)
   *(p-1)=*p;
   L->length--;             
}
main(int argc, char *argv[])
{ Sqlist *L=Inital(L,10);
  //插入值 
  ListInsert(L,2,25);
  //输出插入后的顺序表
  int i=0;
  int *p=L->elem;
  printf("插入数值后的顺序表:"); 
  for(i;i<L->length;i++) 
  {printf("%3d",*p++);} 
  printf("\n");
  //删除值  
  Listdelete(L,4);
  //输出删除后的顺序表
  int j=0;
  int *q=L->elem; 
  printf("删除数值后的顺序表:"); 
  for(j;j<L->length;j++)
  {printf("%3d",*q++);}
  printf("\n");
  //输出指定位置的元素 
  printf("The six element is %d\n",GetElem(L,6));
  //判断表是否为空
  printf("This List has element? %d\n",ListIsEmpty(L)); 
  //输出操作后的表长和表的最大容量 
  printf("经过各个操作后的顺序表长度和最大容量分别为:");
  printf("%d   %d\n",Listlength(L),L->listsize);  
  system("pause");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -