严蔚敏数据结构C语言版 线性表的增删改查功能(完全自己敲的)
/*
严蔚敏数据结构C语言版
顺序线性表的综合程序(增删改查)
*/
//头文件
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
//宏区
#define List_capacity 100 //线性表L的初始容量
#define List_appreciation 10 //线性表L的初始容量不足时分配的增量
//结构
typedef struct //结构
{
int *elem; //用于指向动态连续分配的存储空间的首地址
int length; //当前线性表L的长度
int list_size; //当前线性表L的存储容量
}Sqlist;
//函数区
void List_initialize(Sqlist *L) //线性表L的初始化
{
L->elem = (int *)malloc(List_capacity * sizeof(int)); //分配了一段List_capacity动态连续存储的空间并把首地址发送给L->elem
if (!L->elem)
{
printf("初始化分配失败,检查程序!\n"); //输出信息,出问题时候方便查找问题所在地
exit(1); //非正常退出程序,终止程序
}
else
printf("初始化成功,请继续下一步操作:\n");
L->length = 0; //未赋值,线性表L的初始化长度为0
L->list_size = List_capacity; //记录已经为线性表L分配了List_capacity长度的存储容量
}
void List_The_default_value(Sqlist *L) //线性表L的默认赋值
{
int i, j;
L->elem[0] = NULL; //初始化线性表L的下标为0的元素为0
for (i = 1;i <= 10;i++) //从1开始依次赋值给线性表L的每个元素,到10为止
{
L->elem[i] = i; //将i值赋于将下标为i的元素
L->length++; //每赋值一个数将线性表L的长度自增一次
if (L->length > L->list_size) //如果线性表L的当前长度大于了线性表L的容量
{
int * new1;
new1 = (int *)realloc(L->elem, (L->length + List_appreciation)