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