数据结构没听课的章鱼烧回看大二下的数据结构课的实验代码,看到了这两句:
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;
}