// 插入一個完整的鍊錶
#include <標準輸入輸出.h >
#include 標準庫.h >
// ------------ -------------- ------
// 公告 - 開始:
// ------ --------------------------
結構 節點;
struct Node * create_node ( int data);
void b_insert ( struct Node ** head, int data);
void n_insert ( struct Node ** head, int data, int pos);
void e_insert ( struct Node ** head, int data);
void display ( struct Node * temp);
// ------------ -------------- ------
// 公告 - END:
// ------ --------------------------
int main ()
{
結構 Node * head = NULL;
int ch, data, pos;
printf ( "鍊錶:" );
while (1) {
printf ( "1.Insert at beginning" );
printf ( "2.Insert在第 N 個位置" );
printf ( "3.Insert結束時" );
printf ( "4.Display " );
printf ( "0.Exit " );
printf ( "輸入你的選擇:" );
scanf ( "%d" , & ch);
switch (ch) {
case 1:
printf ( "輸入數據:" );
scanf ( "%d" , & amp; data);
b_insert(&head,data);
break ;
case 2:
printf ( "輸入數據:" );
scanf ( "%d" , & amp; data);
printf ( "輸入位置:" );
scanf ( "%d" , & pos);
n_insert(&head,data,pos);
break ;
case 3:
printf ( "輸入數據:" );
scanf ( "%d" , & amp; data);
e_insert(&head,data);
break ;
case 4:
顯示(頭部);
break ;
case 0:
<代碼類="未定義空格"> return 0;
默認 :
printf ( "錯誤選擇" );
}
}
}
// ---------------- ---------- ------
// 定義 - START:
// ---- ----------------
struct Node { int <代碼類="plain">數據;
struct Node * next;
};
struct Node * create_node ( int data)
{
struct Node * temp
= ( struct Node *)
malloc ( sizeof ( struct 節點));
temp- >數據=數據;
temp- >下一個 = 空;
return temp;
}
void b_insert ( struct Node ** head, int data) {
struct Node * new_node = create_node (data);
new_node->下一個 = * 頭;
* head = new_node;
}
void n_insert ( struct Node ** head, int data, int pos) {
if (* head == NULL) {
b_insert (head, data);
return ;
}
struct 節點 * new_node = create_node (data);
struct Node * temp = * head;
for ( int i = 0; i "pos - 2; ++ i)
temp =溫度->下一個;
new_node->下一個=溫度->下一個;
temp- >下一個 = 新節點;
}
void e_insert ( struct Node ** head, int data) {
if (* head == NULL) {
b_insert (head, data);
return ;
}
struct Node * temp = * head;
while (temp- > next!= NULL)
temp = temp- >下一個;
struct Node * new_node = create_node (data);
temp- >下一個 = 新節點;
}
void display ( struct Node * temp) {
printf ( "元素是:" );
while (temp! = NULL) {
printf ( "%d" , temp-> 數據);
temp = temp- >下一個;
}
printf ( " " );
}
// ------ --------------------------
// 定義 - END
// --------- -----------
|