头文件
//头文件负责结构、函数、 数据的声明
#ifndef _SEQLIST_H_
#define _SEQLIST_H_
#include<stdio.h>//引入概念
//引入相应.cpp==源文件中需要用到的函数
#include<malloc.h>
#include<assert.h>
//顺序表长度为8
#define SEQLIST_INIT_SIZE 8
//定义int类型整形 数据元素 数据表
typedef int ElemType;
//结构体 SeqList 初始化
typedef struct SeqList
{
ElemType *base;//基本成员- 顺序表空间 ==指针
int capacity;//容量 8
int size; //表的大小<=8
}SeqList;
//声明之后去相应.cpp文件进行实现
void InitSeqList(SeqList *list) ;
void push_back(SeqList *list,ElemType x) ;
void show_list(SeqList *list);
#endif //_SEQLIST_H_
源程序
//源文件负责函数的实现
//源文件、主程序全要引入头文件
#include"SeqList.h"
//进行结构的实现
void InitSeqList(SeqList *list)
{
//base capacity size
//在C语言中malloc进行开辟空间 申请内存
//(元素类型)malloc(元素大小)* 表的大小 assert=考虑是否有内存
//引入的函数需要在头文件中引用声明
list->base = (ElemType *)malloc(sizeof(ElemType) * SEQLIST_INIT_SIZE)
assert(list->base != NULL);
list->capacity = SEQLIST_INIT_SIZE;
list->size = 0;
}
//声明之后要在源文件进行 实现 尾部插入函数
//前提要size<容量
//x是指表的大小 1 2 3 ....
void poush_back(SeqList *list,ElemType x)
{
if(list->size >= list->capacity )
{
printf("顺序表已满,不能尾部插入。\n");
return ;
}
list->base[list->size] = x; //size所在位置是下标,指针-->大小+1
list->size++;
}
//进行显示顺序表 对函数的实现
void show_list(SeqList *list){
for(int i=0; i<list->size;++i)
{
printf("%d ",list->base[i]);
}
printf("\n");
}
主程序
//主程序--调用/测试数据结构
//源文件、主程序全要引入头文件
#include"SeqList.h"
//开始编写测试框架
int main()
{
SeqList mylist;
//结构初始化-->头文件声明
InitSeqList(&mylist);
//对线性表的实现 创建抽象数据类型线性表ADT
int select = 1;
//元素定义,在头文件也要定义类型
ElemType Item;
//基本操作 :尾插 头插 显示顺序表 尾删 头删
//按位置插入 查找数据 求数据表长度 按位置删除 按值删除数据
// 插入删除<-- --->排序 、顺序表逆值 顺序表清除 顺序表摧毁
//0代表退出系统
while(select)
{
printf("*********************************\n");
printf("* [1] push_back [2] push_front *\n");
printf("* [3] show_list [4] poo_back *\n");
printf("* [5] pop_front [6] insert_pos *\n");
printf("* [7] find [8] length *\n");
printf("* [9] delete_pos [10]delete_val *\n");
printf("* [11] sort [12] reverse *\n");
printf("* [13] clear [14] destory *\n");
printf("* [0] quit_system *\n");
printf("*********************************\n");
printf("请选择:>");
scanf("%d",&select);
if(select == 0)
break;
switch(select)
{
//基础架构 -->定义元素
// case 1:
// break;
// case 2:
// break;
// default:
// printf("输入的选择错误,请重新输入。\n");
// break;
case 1:
printf("请输入要插入的数据:>"); //push_back
scanf("%d",&Item);
push_back(&mylist,Item);
//需要对函数进行实现
break;
case 2:
break;
case 3:
show_list(&mylist);
//显示顺序表,函数声明之后去源文件实现
break;
default:
printf("输入的选择错误,请重新输入。\n");
break;
}
}
return 0;
}
报错:不知道哪里错了