數據結構沒聽課的章魚燒回看大二下的數據結構課的實驗代碼,看到了這兩句:
typedef int ElemType;
typedef int Status;
搞不懂為啥要定義兩次int。。。。。
百度了一下,網上並沒有給出原因,但個人理解是類似於單鏈表的定義:
LinkList——強調這是一個單鏈表
LNode*——強調這是一個結點
但是它們都代表單鏈表,只是強調不同。
那么:
typedef int ElemType;——強調數據類型
typedef int Status;——強調函數調用狀態,是否調用成功,返回值通常為Error,OK,overflow等。
overflow一般用於exit的參數中,比如創建指針時,一般判斷一下內存是否分配成功,不成功一般調
用exit(overflow);
例如:
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;
}
