C语言顺序表结构加注释,assert()函数报错,【error】expected primary- expression before void-----已解决

头文件

//头文件负责结构、函数、 数据的声明 
#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;
} 

报错:不知道哪里错了 

后续方法:http://t.csdnimg.cn/P82Nh

  • 14
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值