编写了一些在顺序表上的操作,再写了一个主函数初始化,建立顺序表,再输出表中各数据结点的值,发现有错误,输不出来,检查半天又不知道毛病出在哪,麻烦大家帮我看看原因出在哪?
#include <stdio.h>
#include <malloc.h>
#define MAXSIZE 100
typedef char Elemtype;
typedef struct //定义顺序存储的线情表,数据结点存放在data数组,表长度为length
{
Elemtype data[MAXSIZE];
int length;
}sqlist;
void CreateList(sqlist *&L,Elemtype a[],int n) //构造线性表,传递一个数组和数组长度
{
for(int i=0;i<n;i++)
L->data[i]=a[i];
L->length=n;
}
void InitList(sqlist *&L) //初始化线性表(构造一个空的线性表
{
L=(sqlist *)malloc(sizeof(sqlist));
L->length=0;
}
void DestroyList(sqlist *&L) //销毁线性表
{
free(L);
}
int ListEmpty(sqlist *L) //判断表是否为空表
{
return (L->length=0);
}
int ListLength(sqlist *L) //取表的长度
{
return (L->length);
}
void DispList(sqlist *L) //输出线性表的数据结点
{
if(ListEmpty(L))
return;
for(int i=0;i<L->length;i++)
printf("%c",L->data[i]);
printf("\n");
}
int main() //主函数部份
{
sqlist *mysqlist; //定义一个sqlist型指针mysqlist,作为各种表操作的参数
InitList(mysqlist); //初始化
const int m=5;
Elemtype ch[]={'a','b','c','d','e'};
CreateList(mysqlist,ch,m); //传递字符数组ch和长度m,构造一个线性表mysqlist
DispList(mysqlist); //输出mysqlist的数据结点
DestroyList(mysqlist); //销毁mysqlist
return 0;
}
[此贴子已经被作者于2007-11-18 12:53:29编辑过]