鍊錶的建立與遍歷

2021-06-08 16:24:01 字數 1476 閱讀 4380

鍊錶,簡而言之,就是基於鏈式儲存結構下的線性表。鍊錶包括單向鍊錶、雙向鍊錶以及迴圈鍊錶。

鍊錶是一種很常用的資料結構,其定義如下:

/**

* 單向鍊錶的定義

* 定義說明:包括資料域和指標域

*/typedef int elemtype;

typedef struct node lnode,*linklist;

鍊錶的基本操作包括建立鍊錶、在鍊錶中插入結點、在鍊錶中刪除結點、遍歷鍊錶中的內容以及銷毀鍊錶等。建立鍊錶的方法有兩種,一種是「頭插入」法,另一種是「尾插入」法。具體**如下所示:

/**

*方法描述:「頭插入」法建立鍊錶

*輸入引數:int n

*返回型別:linklist

*/linklist createlinklisthead(int n)

return head;

}/**

*方法描述:「尾插入」法建立鍊錶

*輸入引數:int n

*返回型別:linklist

*/linklist createlinklisttail(int n) else

r = p;

} return list;

}

關於這兩種方法,簡要說明:「頭插入」法,首先構建乙個帶有頭結點的空鍊錶,然後建立結點並在鍊錶的頭部插入結點,直到建立好鍊錶,利用這種方法建立鍊錶所輸入的內容和遍歷該鍊錶輸出的內容呈現逆序關係,而「尾插入」法實現輸入的內容與輸出內容表現對應關係,這種方法就是在鍊錶的尾部插入結點,直到建立好鍊錶。

對於已經建立好的鍊錶,如何遍歷鍊錶中的內容並將其輸出,可以通過如下**實現:

/**

*方法描述:遍歷鍊錶內容並輸出

*輸入引數:linklist list

*返回型別:void

*/void printlinklistcontent(linklist list)

printf("\n");

}

測試**如下:

#include#include/**

*方法描述:主方法,實現鍊錶的建立與遍歷

*輸入引數:

*返回型別:int

*/int main()

執行結果如下:

總結:鍊錶採用鏈式儲存結構在記憶體空間實現線性表的邏輯關係,這種情況下,邏輯關係的有序性並不意味著物理結構的有序性。它包括資料域和指標域兩部分,相對於順序表來說,它方便進行插入、刪除操作,但是,線性表的內容遍歷與輸出需要頭指標開始。

鍊錶2(鍊錶的建立與遍歷)

現有有n個學生的資料記錄,每個記錄包括學號 姓名 三科成績。編寫乙個函式input,用來輸入乙個學生的資料記錄。編寫乙個函式print,列印乙個學生的資料記錄。在主函式呼叫這兩個函式,讀取n條記錄輸入,再按要求輸出。n 100 include typedef struct student stude...

鍊錶的建立和遍歷演算法

node creat 建立鍊錶,返回表頭,void showlist node head 遍歷鍊錶的函式,引數為表頭 int main node creat else pend ps while temp return head void showlist node head cout 下面來說明一...

簡單鍊錶的建立和遍歷

直接貼 include using namespace std struct node 定義結點結構型別 node create 建立鍊錶的函式,返回表頭 void showlist node head 遍歷鍊錶的函式,引數為表頭 int main node create else 否則 pend ...