最近学习数据结构,用C语言的结构体编写顺序表时出现了问题:
这是源代码:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define bool char
#define true 1
#define false 0
#define MAXSIZE 6
struct SequenceList
{
int* data;
int length;
int size;
};
//创建一个新表
bool creatList(struct SequenceList* ptr)
{
if((ptr->data=(int*)malloc(MAXSIZE*sizeof(int)))==NULL)
{
printf("申请内存失败");
return false;
}
printf("成功");
ptr->length = 0;
ptr->size = MAXSIZE;
return true;
}
//将表清除
bool clear(struct SequenceList* ptr)
{
if(!ptr->data)
{
return false;
}
ptr->length = 0;
return true;
}
//表的插入
bool insert(struct SequenceList* ptr,int position,int element)
{
int i = 0;
if (position<1 || position>ptr->length+1)
{
printf("输入位置不正确");
return false;
}
if (ptr->length==ptr->size)
{