M C L C
M C L C ...................................................................................................01
PH N I: GI I THI U CHUNG ................................................................02
1. Khái ni m v danh sách móc n i ...........................................................02
2. Các phép toán trên danh sách..................................................................02
3. Gi i thi u v ch ng trình qu n lý sinh viên ươ .......................................02
PH N II: GI I THI U CÁC THÀNH PH N CHÍNH C A CH NG ƯƠ
TRÌNH.........................................................................................................03
1. S đ các l p đ i t ngơ ượ ........................................................................03
2. Mô t các l p đ i t ng ượ ........................................................................04
PH N III: GI I THI U CÁC CH C NĂNG TRONG CH NG ƯƠ
TRÌNH.........................................................................................................08
PH N IV: MÃ NGU N CH NG TRÌNH ƯƠ ............................................09
PH N V: K T LU N VÀ H NG PHÁT TRI N CH NG ƯỚ ƯƠ
TRÌNH.........................................................................................................22
PH N 1: GI I THI U CHUNG
1.Khái ni m v danh sách móc n i
Danh sách là t p h p các nút (ô nh ) không li n k , có ki u d li u
xác đ nh và gi a chúng có liên l c v i nhau b i con tr đ a ch .
S nút c a danh sách g i là chi u dài c a danh sách. M t danh sách
có chi u dài b ng 0 là m t danh sách r ng.
1
Danh sách móc n i kép là t p h p các nút mà m i nút có 2 m i liên
k t v i 2 ph n t khác trong danh sách.ế
M t nút trong danh sách móc n i kép có d ng:
Trong đó:
LEFT: con tr trái: l u tr đ a ch nút tr c ư ướ
RIGHT: con tr ph i: L u tr đ a ch nút sau ư
Danh sách móc n i kép có d ng:
2.Các phép toán trên danh sách
T o m i m t danh sách
Thêm 1 nút vào danh sách
Tìm ki m 1 nút trong danh sáchế
Xóa 1 nút kh i danh sách
S p x p th t các danh sách ế
H y danh sách
3.Gi i thi u v ch ng trình qu n lý sinh viên ươ
Ch ng trình giúp qu n lý d li u cũng nh thông tin c a sinh viênươ ư
nh : mã s sinh viên, h tên, năm sinh, l p, đi m trung bình….ư
Ch ng trình có các ch c năng chình nh :ươ ư
T o 1 danh sách sinh viên
Thêm 1 sinh viên vào danh sách
Xóa 1 sinh viên
Tìm ki m 1 sinh viênế
S p x p danh sách sinh viên ế
PH N II: GI I THI U CÁC THÀNH PH N CHÍNH C A CH NG ƯƠ
TRÌNH
2
LEFT INFO RIGHT
S Đ CÁC L P Đ I T NGƠ ƯỢ
MÔ T CÁC L P Đ I T NG ƯỢ
L p SV:
1. Thu c tính:
Ki u d li u char:
maso: Mã s sinh viên
hoten: H và tên sinh viên
lop: L p sinh viên đang h c
gioitinh: Gi i tính sinh viên
quequan: Quê quán sinh viên
Ki u d li u int:
ns: Năm sinh
Ki u d li u float:
3
SINHVIEN info (đ i t ng ượ
thành ph n); * left, * right
getnode
freenode Createlist
Nhaplist
Showlist
Listsize
Push_first
Push_last
Push_after
Search_name
Search_maso
Del_first
Del_last
Del_node_name
Del_node_maso
Clear_list
Sort_list_dtb
Ghi_file
Doc_file
*first, *last
Maso,hoten,namsinh,gio
itinh,quequan,lop,dtb
Nh p
Hi n
NODE LIST
SINHVIEN
MENU
LIST a (đttp)
Hien
Xuly
dtb: đi m trung bình
2. Ph ng th c:ươ
Nhap: Hàm nh p 1 sinh viên
Hien: Hàm hi n sinh viên
I. L p NODE:
1. Thu c tính:
Đ i t ng thành ph n: ượ
Info: ch a thông tin sinh viên
*l: Con tr trái, tr t i nút đ ng tr c ướ
*r: Con tr ph i, tr t i nút đ ng sau
2. Ph ng th c:ươ
Getnode: Hàm c p phát 1 nút m i cho danh sách móc n i
Thu t toán:
B1: Kh i t o 1 nút m i , c p phát b nh cho nút đó
B2: N u nút đó khác NULL ế
p->right=NULL;
p->left=NULL;
B3: Nh p d li u info cho nút đó
Hàm tr v con tr tr t i đ a ch nút m i t o. N u không đ b nh đ t o, hàm tr ế
v giá tr NULL.
Freenode: Hàm gi i phóng b nh nút v a c p phát
II. L p LINKLIST th a k t l p NODE ế
1. Thu c tính ki u NODE
*first: tr t i ph n t đ u danh sách
*last: tr t i ph n t cu i danh sách
2. Ph ng th c:ươ
Createlist: Hàm kh i t o 1 danh sách m i
Cho giá tr các con tr qu n lý đ a ch hai nút đ u và cu i danh sách
móc n i kép v con tr NULL.
Nhaplist: Hàm nh p n sinh viên vào danh sách
Thu t toán:
B1: Nh p s l ng sinh viên c n nh p vào danh sách (n) ượ
B2: Kh i t o bi n đ m i, i=0 ế ế
B3: So sánh i v i n. N u i<n -> B4, n u i>=n -> B6 ế ế
B4: Thêm 1 nút vào danh sách (push_last())
B5: Tăng i lên 1 -> Quay l i b c 2 ướ
B6: K t thúc.ế
Showlist: Hàm hi n danh sách sinh viên
Thu t toán:
4
B1: Kh i t o 1 con tr tr vào nút đ u tiên
B2: N u nút đó khác NULL->B3, ng c l i ->k t thúcế ượ ế
B3: Hi n nút đó
B4: D ch con tr sang ph i 1 nút->B2
Listsize: Hàm đ m s l ng nút trong danh sáchế ượ
Thu t toán:
B1: Kh i t o 1 con tr , bi n đ m I (i=0) ế ế
B2: Cho con tr tr vào nút đ u tiên
B3: N u nút đó khác NULL ->B4, ng c l i->B6ế ượ
B4: d ch con tr sang ph i 1 nút
B5: Tăng i lên 1->B3
B6: Tr v i;
Push_first: Hàm thêm 1 nút vào đ u danh sách.
Thu t toán:
B1: Kh i t o con tr , t o 1 nút.
B2: Neu nút đó =NULL ->B3.
B3: N u danh sách r ng->B4.ế
N u danh sách không r ng-> B5.ế
B4: đ t nút m i làm nút đ u và nút cu i.
B5: Liên k t ph i nút m i tr đ n nút đ u tiên hi n th i trong danhế ế
sách.
B6: Liên k t trái nút đ u tiên hi n th i tr đ n nút m i.ế ế
B7: Đ t nút m i làm nút đ u tiên.
Push_last: Hàm thêm 1 nút vào cu i danh sách.
Thu t toán:
B1: Kh i t o con tr , t o 1 nút
B2: N u nút đó =NULL ->B3ế
B3: N u danh sách r ng->B4ế
N u danh sách không r ng-> B5ế
B4: đ t nút m i làm nút đ u và nút cu i.
B5: Liên k t ph i nút cu i cùng hi n th i tr đ n nút m i.ế ế
B6: Liên k t trái m i tr đ n nút cu i cùng hi n th i trong danhế ế
sách.
B7: Đ t nút m i làm nút cu i cùng.
Push_after: Hàm thêm 1 nút vào sau 1 v trí trong danh sách
Thu t toán:
B1: Kh i t o con tr p tr đ n m i, con tr q đ duy t, kh i t o ế
bi n vt đ xác đ nh v trí c n chèn sau, i là bi n đ m(i=0).ế ế ế
B2: Nh p v trí c n chèn (vt).
B3: So sánh vt v i s nút trong danh sách
5