结构体声明:
typedef struct Listable{//声明结构体 int * head; int length; int size; }listable;
顺序表的创建:
//创建顺序表函数 listable establash(){ listable lt; //创建结构体变量 lt.head=(int *)malloc(Size*sizeof(int));//申请内存 if(!lt.head){ printf("创建失败"); exit(0); //退出 } lt.length=0; //顺序表内边元素占用的长度 lt.size=Size; //顺序表的长度 return lt; }
案例:
#include <stdio.h> #include <stdlib.h> #define Size 10 typedef struct Listable{//声明结构体 int * head; int length; int size; }listable; //创建顺序表函数 listable establash(){ listable lt; //创建结构体变量 lt.head=(int *)malloc(Size*sizeof(int));//申请内存 if(!lt.head){ printf("创建失败"); exit(0); //退出 } lt.length=0; //顺序表内边元素占用的长度 lt.size=Size; //顺序表的长度 return lt; } //初始化 void star(listable *ls){ for(int j=0;j<5;j++){ //赋值5个数 ls->head[j]=j+1; ls->length++; } } //打印顺序表的值 void print(listable *li){ for(int i=0;i<li->length;i++){ printf("%d ",li->head[i]); } printf("\n"); } int main(){ listable lis=establash(); star(&lis); printf("顺序表内容:"); print(&lis); printf("总长度:%d 当前长度:%d",Size,lis.length); return 0; }