数据结构没听课的章鱼烧回看大二下的数据结构课的实验代码,看到了这两句:

typedef int ElemType;
typedef int Status;

搞不懂为啥要定义两次int。。。。。

百度了一下,网上并没有给出原因,但个人理解是类似于单链表的定义:

LinkList——强调这是一个单链表

LNode*——强调这是一个结点

但是它们都代表单链表,只是强调不同。

那么:

typedef int ElemType;——强调数据类型

typedef int Status;——强调函数调用状态,是否调用成功,返回值通常为Error,OK,overflow等。

overflow一般用于exit的参数中,比如创建指针时,一般判断一下内存是否分配成功,不成功一般调

用exit(overflow);

例如:

#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status; //函数类型,其值是函数结果状态码
typedef int ElemType; //数据类型

再例如:

typedef struct{
ElemType *elem;
int length;
int listsize;
}SqList;

Status InitList_Sq(SqList &L){    //构造一个空的线性表L
L.elem = (ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem)exit(OVERFLOW);   //存储分配失败
L.length = 0; //空表长度为0
L.listsize = LIST_INIT_SIZE;   //初始存储容量
return OK;

}