线性表
线性表定义
线性表是零个或多个数据元素的集合,线性表中的数据元素是有序的;线性表中的数据元素个数是有限的;线性表中的数据元素的类型必须相同
线性表顺序实现
SeqList.h
#ifndef __MY_SEQLIST_H__
#define __MY_SEQLIST_H__
typedef void SeqList;
typedef void SeqListNode;
SeqList* SeqList_Create(int capacity);
int SeqList_Create01(SeqList **handle, int capacity);
void SeqList_Destroy(SeqList* list);
void SeqList_Clear(SeqList* list);
int SeqList_Length(SeqList* list);
int SeqList_Capacity(SeqList* list);
int SeqList_Insert(SeqList* list, SeqListNode* node, int pos);
SeqListNode* SeqList_Get(SeqList* list, int pos);
SeqListNode* SeqList_Delete(SeqList* list, int pos);
#endif //__MY_SEQLIST_H__
SeqList.c
#include "SeqList.h"
#include <stdio.h>
#include <stdlib.h>
typedef struct Teacher
{
char name[64];
int age;
}Teacher;
int main()
{
SeqList *list = NULL;
Teacher t1, t2, t3;
t1.age = 20;
t1.age = 21;
t1.age = 22;
list = SeqList_Create(10);
SeqList_Insert(list, (SeqListNode *)&t1, 0); //插入
SeqList_Insert(list, (SeqListNode *)&t2, 0);
SeqList_Insert(list, (SeqListNode *)&t3, 0);
for (size_t i = 0; i < SeqList_Length(list); i++)
{
Teacher *temp = (Teacher *)SeqList_Get(list, i);
if (temp != NULL)
{
printf("temp:age = %d\n", temp->age);
}
}
for (size_t i = 0; i < SeqList_Length(list); i++)
{
SeqList_Clear(list, i);
}
SeqList_Destroy(list);
system("pause");
}