在進行單鏈表的基本運算之前必須先建立單鏈表,建立單鏈表的常用方法有兩種:頭插法建表和尾插法建表
頭插法建表,從乙個空表開始,讀取字元陣列a中的字元,生成新節點,將讀取的資料存放到新節點的資料域中,然後將新節點插入到當前鍊錶的表頭上,直到讀完字元陣列a的所有元素為止。
頭插法建表雖然簡單,但生成的鍊錶中節點的次序和原陣列的次序相反,若希望兩者的次序一致,可採用尾插法建立
尾插法建表,該演算法是將新節點插到當前鍊錶的表尾上,為此必須增加乙個尾指標r,使其始終指向當前鍊錶的尾節點
#include
#include
typedef
int elemtype;
typedef
struct node node,
*linkedlist;
linkedlist linkedlistinit()
l->next =
null
;return l;
}linkedlist linkedlistcreath()
return l;
} linkedlist linkedlistinsert
(linkedlist l,
int i,elemtype x)
node *p;
p =(node *
)malloc
(sizeof
(node));
p->data = x;
p->next = pre->next;
pre->next = p;
return l;
} linkedlist linkedlistdelete
(linkedlist l,elemtype x)
pre->next = p->next;
free
(p);
return l;
}int
findder
(linkedlist l,
int x)
i++;}
return-1
;}linkedlist delete
(linkedlist l,
int st,
int en)
if( en == i )
i++;if
(!flag1 )
per = start;
}return l;
}int
main()
printf
("\n");
int i;
elemtype x;
printf
("請輸入插入資料的位置:");
scanf
("%d"
,&i)
;printf
("請輸入插入資料的值:");
scanf
("%d"
,&x)
;linkedlistinsert
(list,i,x)
;for
(start = list->next; start !=
null
; start = start->next)
printf
("\n");
printf
("請輸入要刪除的元素的值:");
scanf
("%d"
,&x)
;linkedlistdelete
(list,x)
;for
(start = list->next; start !=
null
; start = start->next)
printf
("\n");
return0;
}
#include
#include
typedef
int elemtype;
typedef
struct node node,
*linkedlist;
linkedlist linkedlistinit()
l->next =
null
;return l;
}void
linkedlistcreath
(linkedlist &list)
} linkedlist linkedlistinsert
(linkedlist l,
int i,elemtype x)
node *p;
p =(node *
)malloc
(sizeof
(node));
p->data = x;
p->next = pre->next;
pre->next = p;
return l;
} linkedlist linkedlistdelete
(linkedlist l,elemtype x)
pre->next = p->next;
free
(p);
return l;
}int
main()
printf
("\n");
int i;
elemtype x;
printf
("請輸入插入資料的位置:");
scanf
("%d"
,&i)
;printf
("請輸入插入資料的值:");
scanf
("%d"
,&x)
;linkedlistinsert
(list,i,x)
;for
(start = list->next; start !=
null
; start = start->next)
printf
("\n");
printf
("請輸入要刪除的元素的值:");
scanf
("%d"
,&x)
;linkedlistdelete
(list,x)
;for
(start = list->next; start !=
null
; start = start->next)
printf
("\n");
return0;
}
資料結構鍊錶 頭插法 尾插法 雙向鍊錶
我們最近學了資料結構鍊錶中的尾插法,頭插法,雙向鍊錶 鍊錶的步驟 1.申請乙個新的節點空間 2.給新的節點賦值資訊域 3.修改這個節點的指標域,將節點連線起來 尾插法 顧名思義就是從節點的尾部進行插入,首先申請乙個節點空間,給新的節點賦值資訊域,然後修改這個 節點的指標域,寫鍊錶首先要判斷頭節點是否...
資料結構 單鏈表前插法(頭插法)C
include using namespace std include define ok 1 define error 0 typedef int elemtype typedef int status 單鏈表的儲存結構 typedef struct lnodelnode,linklist 定義結...
資料結構 頭插法和尾插法
1.節點的定義 2.採用頭節點的好處 3.採用頭插法建立鍊錶 該方法從空表開始,生成新節點,並將讀取到的資料存放到新節點的資料域中,並將新節點插入到當前鍊錶的表頭,即頭節點之後。採用頭插法建立單鏈表時,讀入資料的順序與生成的鍊錶中的元素的順序是相反的。每個節點插入的時間為o 1 設單鏈表長為n,則總...