尾插法建立單鏈表(c) (25 分)
本題要求實現兩個函式,輸入n個資料,採用尾插法建立單鏈表並列印。例如:如果輸入4 ,再輸入3 7 9 5,則應列印輸出3 7 9 5。
struct node ;
/* 尾插法建立單鏈表:返回單鏈表的頭指標 */
struct node* buildlinkedlist(int* arr, int n); /* 尾插法建立單鏈表 */
void printlinkedlist(struct node* head); /* 列印鍊錶 */
其中arr
和n
是使用者傳入的引數,n
的值不超過100000。head
為單鏈表的頭指標。
#include #include //malloc函式
struct node ;
/* 尾插法建立單鏈表:返回單鏈表的頭指標 */
struct node* buildlinkedlist(int* arr, int n); /* 尾插法建立單鏈表 */
void printlinkedlist(struct node* head); /* 列印鍊錶 */
int main(int argc, char const *ar**)
struct node* head = null; //宣告乙個指標變數head
//建立鍊錶,把返回的頭指標賦值給head指標變數
head = buildlinkedlist(a, n);
//列印鍊錶:整個鍊錶用head來代表。
printlinkedlist(head);
free(a); //釋放儲存空間
return 0;
}/* 請在這裡填寫答案 */
輸入包含兩行。 第一行為資料個數n,不超過100000。 第二行為n個空格分隔的整數,其值不超過int值的範圍。
4
3 7 9 5
在一行輸出鍊錶每個結點中的資料,以空格分隔,但行尾無多餘空格。
3 7 9 5
struct node* buildlinkedlist(int* arr, int n)
return head;
}void printlinkedlist(struct node* head)
}
建立單鏈表(尾插法)
建立單鏈表有兩種方法,這裡採用頭插法。尾插法含義 該方法是從乙個空表開始,讀取陣列的元素,生成新節點,將讀取的資料放到存放在新節點的資料域中,然後將該節點插入到鍊錶的表頭上,直到結束為止。由於 頭插法會讓順序與陣列原順序相反,所以這裡要定義乙個尾指標r才可讓順序不變。思路 尾插法 1.先建立乙個頭結...
建立單鏈表(頭插法 尾插法)
1 頭插法建立單鏈表 生成的鍊錶中結點的順序與輸入的順序相反 頭插法建立單鏈表 status createlist l linklist l,int n return ok 2 尾插法建立單鏈表 與輸入的順序相同 尾插法建立單鏈表 status createlist tail linklist l,...
建立迴圈單鏈表(尾插法)
迴圈鍊錶的操作實現演算法與非迴圈鍊錶的操作演算法基本相同,只是對錶尾的判斷做了改變。定義單鏈表的儲存結構 typedef struct linklist思路 尾插法,定義尾指標 1.建立頭結點l.並置為空的迴圈單鏈表 並定義乙個尾指標 2.通過for迴圈,生成新節點,鏈結到頭結點之後,乙個接乙個。注...