c语言数据结构线性表之status蜜汁困惑


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

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;

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM