#include <stdio.h>//输出输入
#include <stdlib.h>//分配空间
#define Size 5
//定义顺序表的结构
typedef struct Table{
int *head;
int length;
int size;
}table;
//一个返回结构体的函数
table initTable(){
table t;//初始化
t.head = (int *)malloc(Size*sizeof(int));
//如果Size为0,t.head是NULL
if(!t.head){
printf("没有head");
exit(0);
}
t.length = 0;
t.size = Size;
return t;
}
//声明一下打印函数.这里传入的为什么不是struct呢?因为我们已经给struct重新起了名字叫table
void dispalyTable(table);
int main(){
//定义初始值
table t = initTable();
//开始添加元素,因为是顺序表,一个一个的加入元素,所以我们用for循环
int i;
for(i=1;i<=Size;i++){
t.head[i-1]=i;
t.length++;
}
//已经添加进去了,可以打印出来看看
printf("打印顺序表出来:\n");
//调用函数
dispalyTable(t);
}
//我们需要一个打印顺序表出来的函数
//打印嘛,只要知道第一头指针,然后挨个输出就行了
//传进一个结构体
void dispalyTable(table t){
//开始喽!这里为什么是length呢?是因为length<=Size
for(int i=0;i<t.length;i++){
int print = t.head[i];
printf("打印第%d的值是:%d\n",i,print);
}
printf("\n");
}
都在代码里已经解释过了。