Lập trình bằng Turbo Pascal part 8 pdf

28 391 1
Lập trình bằng Turbo Pascal part 8 pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lập trình bằng Turbo Pascal 1.3.2 1.3.3 1.3.4 1.3.5 Duyệt danh sách. Duyệt một danh sách l thao tác truy cập đến tất cả các phần tử của danh sách để thực hiện một xử lí no đó sao cho đảm bảo không sót v không lặp. Không sót nghĩa l mọi phần tử đều đợc xử lí, không lặp nghĩa l không phần tử no bị xử lí quá một lần. Phép duyệt có thể thực hiện nhờ một vòng lặp For For i:= 1 to L.kt do " xử lí L.PhanTu[i]" ; Ví dụ Thay ton bộ tên bằng chữ in hoa For i:= 1 to L.kt do L.PhanTu[i]:= upper(L.PhanTu[i]); Tìm kiếm Tìm kiếm một phần tử trong danh sách l nhằm phát hiện phần tử có chứa một thnh phần dữ liệu trùng khớp với mẫu đã cho. Mẫu ny thờng đợc gọi l khóa tìm kiếm. Tuỳ theo danh sách có đợc sắp xếp thứ tự theo khoá đã cho hay không m có các cách tìm kiếm khác nhau. Tìm kiếm tuần tự - Sequential Searching Khi danh sách cha đợc sắp xếp thì cách duy nhất để thực hiện tìm kiếm l duyệt từ đầu, cho đến khi tìm thấy hoặc phát hiện không có. Tìm kiếm nhị phân - Binary Searching Khi danh sách đã đợc sắp xếp đúng thứ tự theo khoá cần tìm thì có thể tiến hnh tìm kiếm theo cách chia đôi dần. Đây l thủ tục tìm kiếm nhị phân đã xét đến trong phần thủ tục đệ quy. Thêm phần tử. - Hoặc nối vo cuối, khi đó danh sách không đợc sắp theo thứ tự. Thực hiện đơn giản nhng sẽ phải chi phí nhiều khi tìm kiếm. - Hoặc chèn đúng chỗ, theo cách ny buộc phải tìm đúng vị trí v sau đó dịch chuyển cả phần đuôi. Thực hiện phức tạp hơn nhng bù lại khi tìm kiếm sẽ nhanh hơn. Gỡ bỏ phần tử - Tìm đến phần tử cần gỡ bỏ v huỷ phần tử ny bằng cách chép dồn lên 1.4 Các u, nhợc điểm. Danh sách thể hiện bằng cấu trúc mảng có các u nhợc điểm sau. Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 189 Lập trình bằng Turbo Pascal - Đơn giản, có thể ci đặt đễ dng bằng kiểu mảng đã quen biết. - Bất tiện khi thờng xuyên có thao tác thêm bớt phần tử ở giữa danh sách. 1.5 Ví dụ minh hoạ Để thấy đợc các u nhợc điểm của danh sách mảng hãy cải tiến chơng trình quản lí hồ sơ của sinh viên đã phát triển trong chơng 3. Chơng trình ny đã cho phép tiến hnh các thao tác tạo lập, liệt kê, tìm kiếm v thêm một hồ sơ vo cuối danh sách. Cần bổ xung thêm chức năng thứ 5 l cho phép huỷ một hồ sơ. 1.5.1 Phân tích, thiết kế. Chức năng huỷ một hồ sơ trong danh sách sinh viên l thủ tục phức tạp hơn cả vì bản ghi cần huỷ có thể nằm ở giữa tệp. Cần có thao tác dồn lấp chỗ trống. Nội dung tệp phải viết lại hon ton. Do đó cần đọc ton bộ thông tin ra một mảng trong bộ nhớ để tiện xử lí. Chỉ viết lại vo tệp ở thời điểm cuối cùng, khi mọi thay đổi đã hon tất. Một danh sách các hồ sơ đợc thực hiện bằng mảng các bản ghi. Ta cần khai báo một danh sách mảng nh sau. Type DSHoso = Record PhanTu: array [1 max_kt] of Hoso; Kt: word; End; Var L: DSHoso Chi tiết dần từng bớc thủ tục huỷ một hồ sơ khỏi danh sách nh sau. 5. Huỷ một hồ sơ. - Đầu vo: tệp đã mở sẵn, mã số của hồ sơ cần huỷ gõ từ bn phím - Đầu ra: tệp không còn chứa bản ghi cần huỷ. Chi tiết dần từng bớc. 5.1 Chép ton bộ nội dung tệp ra mảng các bản ghi. 5.2.1 Đa cửa sổ tệp về đầu tệp; gán chỉ số đầu tiên của mảng. 5.2.2 Đọc từ tệp ra phần tử mảng 5.2.3 Tăng chỉ số mảng lên một 5.2.4 Dừng khi hết tệp. 5.2 Nhập mã số của hồ sơ cần huỷ. 5.3 Tìm kiếm phần tử mảng l bản ghi có mã số đã cho: 5.3.1 Gọi thủ tục Tìm kiếm. 5.4 Xử lí kết quả tìm kiếm. 5.4.1 Trờng hợp không thấy, hiển thị thông báo không thấy. Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 190 Lập trình bằng Turbo Pascal 5.4.2 Trờng hợp thấy, tiến hnh gỡ bỏ bản ghi khỏi mảng: 5.4.2.1 Chép dồn các phần tử mảng lên một vị trí lấp vo chỗ phần tử mảng bị gõ bỏ, 5.4.2.2 hiển thị thông báo thnh công. 5.5 Hỏi lại ngời dùng có cần huỷ tiếp hay không. 5.6 Xử lí trả lời có: lặp lại từ bớc 5.2; 5.7 Viết nội dung của mảng ra tệp 5.8 Đóng tệp v kết thúc. 1.5.2 Triển khai chi tiết. Từ bảng phân tích chi tiết dần từng bớc ở trên, dễ dng chuyển thnh một thủ tục Pascal nh dới đây. Lu ý rằng để nhấn mạnh cấu trúc danh sách v dễ theo dõi ta không sử dụng câu lệnh with m viết đầy đủ các cấp của kiểu bản ghi lồng nhau. procedure Huy; var TimThay:boolean; CoHuy:boolean; traloi:char; i, csTimThay: integer; begin CoHuy:= false; reset(TepHoso); i:=0; {chep lai vao danh sach de xu ly thao tac huy} while not eof(TepHoso) do begin read(TepHoso,L.PhanTu[i]); i:=i+1; end; L.kt:= i-1; repeat write('Ma so SV can huy thong tin: '); readln(ma); TimThay:= false; i:= 0; while (not TimThay) do begin if L.PhanTu[i].maso=ma then begin TimThay:=true; CoHuy:=true; csTimThay:=i; end; i:=i+1; end; if TimThay then begin {chep lai mang, tru SV can huy} L.kt:= L.kt - 1; for i:= csTimThay to L.kt do begin L.PhanTu[i].maso:= L.PhanTu[i+1].maso; L.PhanTu[i].hoten:= L.PhanTu[i+1].hoten; Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 191 Lập trình bằng Turbo Pascal L.PhanTu[i].namsinh:= L.PhanTu[i+1].namsinh; end end else writeln(' Ma so SV: ',ma,' khong co trong danh sach'); write(' Can huy tiep (Y/N) ?: ');readln(traloi); until upcase(traloi)='N'; if CoHuy then begin {chep tu L vao tep} rewrite(TepHoso); for i:=0 to L.kt do write(TepHoso,L.PhanTu[i]); close(TepHoso); end else close(TepHoso); end; Chơng trình sau khi đợc bổ xung thêm chức năng huỷ hồ sơ. program QLSV; uses crt, bgchon; Const maxSize=10; Type HoSo= Record maso:integer; hoten:String[20]; namsinh:string[2]; end; DSHoso = record PhanTu: array[0 maxSize] of HoSo; Kt: word; End; Var TepHoso:File of HoSo; L: DSHoso; sv:HoSo; tenfile:String[8]; ma:integer; SoMC: word; TenMC: Mang_String; Chon: integer; procedure MoTep; procedure LietKe; procedure TimKiem; procedure Them; procedure Huy; Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 192 Lập trình bằng Turbo Pascal Procedure NhapThamSoBangChon; begin {khoi tri cac tham so bang chon} SoMC:= 6; TenMC[0]:=' Mo tep du lieu '; TenMC[1]:=' Liet ke '; TenMC[2]:=' Tim kiem '; TenMC[3]:=' Them vao '; TenMC[4]:=' Huy ho so '; TenMC[5]:=' Ket thuc'; End; BEGIN Clrscr; NhapThamSoBangChon; repeat chon:= BangChon(60,15,SoMC,TenMC,Blue,Red) + 1; case chon of 1:MoTep; 2:LietKe; 3:TimPhanTu; 4:ThemPhanTu; 5:HuyPhanTu; end; until (chon = SoMC) or (chon = 0); END. 2. Danh sách kiểu ngăn xếp - Stack. Nếu các thao tác thêm bớt phần tử không xảy ra "ở giữa" danh sách thì hon ton có thể thực hiện bằng mảng nh đã phân tích ở trên. Dới đây xét hai loại danh sách đặc biệt, các phép thêm vo, lấy ra thực hiện tại vị trí đầu hoặc cuối. 2.1 Định nghía danh sách kiểu ngăn xếp. Khi lm việc với một chồng hồ sơ trên bn, ta chỉ thấy đợc cái trên cùng, lấy ra lần lợt từ trên xuống dới. Nếu có thêm hồ sơ mới thì xếp chồng lên trên. Mô hình trừu tợng hoá của chồng hồ sơ chính l một danh sách với các thao tác thêm vo, lấy ra chỉ thực hiện tại đầu danh sách. Đó l danh sách kiểu ngăn xếp hay Stack. Đinh nghĩa: Danh sách kiểu ngăn xếp (Stack) l một kiểu danh sách tuyến tính đặc biệt m phép thêm vo, lấy ra phần tử chỉ thực hiện ở một đầu gọi l đỉnh ngăn xếp - Top. Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 193 Lập trình bằng Turbo Pascal Khi có thao tác lấy ra thì phần tử đợc xếp cuối cùng vo ngăn xếp sẽ đợc lấy ra đầu tiên. Do đó ngăn xếp còn có tên gọi l danh sách kiểu last in, first out hay danh sách LIFO. Stack có rất nhiều ứng dụng. Hình 13.1: Một ngăn xếp các hồ sơ 2.2 Biểu diễn danh sách kiểu ngăn xếp. Nh đã phân tích ở cuối tiết trớc, danh sách kiểu ngăn xếp có thể đơc thực hiện dễ dng bằng mảng. Một ngăn xếp gồm một biến mảng các phần tử v một biến kiểu số nguyên để ghi số phần tử hiện có. Nếu đánh số các phần tử mảng từ 1 thì số phần tử hiện có đồng thời cũng l chỉ số của phần tử trên cùng của mảng. Kiểu ngăn xếp có thể đợc khai báo nh sau. Type NganXep = Record PhanTu: array [1 max_kt ] of kiểu phần tử ; Top: word; End; VAR S: NganXep ; ở đây max_kt l kích thớc (dự phòng) lớn nhất có thể của ngăn xếp. Top l chỉ số của phần tử trên đỉnh. Top cũng chính l số phần tử hiện có trong ngăn xếp. 2.3 Các phép toán đối với kiểu ngăn xếp. 1 - Khởi tạo ngăn xếp rỗng: Top:= 0; 2 - Thêm vo một phần tử. Tên chuẩn l Push. Các bớc thực hiện l Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 194 Lập trình bằng Turbo Pascal - Kiểm tra đầy ngăn xếp cha. Nếu đầy, báo lỗi trn ngăn xếp. - Trái lại: sửa lại vị trí đỉnh v chép phần tử mới vo. Procedure Push(x: kiểuphầntử, VAR S:NgănXếp); begin if S.Top=maxSize then else begin S.Top:= S.Top+1; S.PhanTu[Top]:= x; end end; 3 - Lấy ra một phần tử Tên chuẩn l Pop. Các bớc thực hiện l - Kiểm tra ngăn xếp có rỗng không. Nếu rỗng, báo lỗi ngăn xếp rỗng. - Trái lại: lấy ra nội dung phần tử ở đỉnh v sửa lại vị trí đỉnh. Procedure Pop(S: NgănXếp; VAR x: kiểuphầntử) ; begin if Top=0 then else begin S.Top:= S.Top-1; x:= S.PhanTu[S.Top+1]; end end; 3. Danh sách kiểu hàng đợi - Queue. 3.1 Định nghĩa danh sách kiểu hàng đợi. Kiểu danh sách hnh đợi l mô hình hóa một loại danh sách m hoạt động của nó giống nh hng đợi trớc cửa một quầy bán vé. Phần tử mới chỉ đợc thêm vo cuối còn phần tử đợc lấy ra chỉ từ vị trí đầu tiên của danh sách. Định nghĩa: Danh sách kiểu hng đợi (Queue) l một kiểu danh sách m: - Phép thêm phần tử vo chỉ thực hiện ở một đầu mút, gọi l lối sau (rear) hay đuôi hng đợi; - Phép lấy phần tử ra thực hiện ở đầu kia, gọi l lối trớc (front) hay đầu hng đợi. Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 195 Lập trình bằng Turbo Pascal front rear Hình 13.2: Hng đợi trớc quầy bán vé. Danh sách kiểu hng đợi sẽ hoạt động theo theo nguyên tắc, đến trớc phục vụ trớc, đến sau phục vụ sau. do đó còn có tên gọi l danh sách kiểu first in first out hay danh sách FIFO. 3.2 Biểu diễn danh sách kiểu hàng đợi bằng mảng. Hng đợi Q gồm một biến mảng chứa các phần tử, hai biến kiểu số nguyên để ghi chỉ số của phần tử đầu v phần tử cuối v một biến nguyên khác để ghi số phần tử hiện có. Type HangDoi = Record PhanTu: array [0 max_kt - 1] of kiểuphầntử ; r,f, kt: word; end; Var Q: HangDoi; Trong đó, max_kt l kích thớc lớn nhất (dự phòng) có thể của hng đợi. r = chỉ số phần tử cuối hng đợi, f = chỉ số phần tử đầu hng đợi, kt = số phần tử hiện có. Lu ý việc đánh chỉ số các phần tử mảng bắt đầu bằng 0 để thuận tiện hơn cho việc nối vòng tròn nh sau ny sẽ thấy. 3.2 Các phép toán. 3.2.1 Phân tích 1. Khởi tạo: r:= -1; f:= 0; kt:= 0; 2. Thêm v bớt phần tử. Các bớc thực hiện thao tác thêm phần tử v lấy ra phần tử của hng đợi nh sau. - Khi thêm một phần tử vo hng đợi cần tăng chỉ số phần tử cuối r lên 1 v chép nội dung vo Q(r): Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 196 Lập trình bằng Turbo Pascal Thêm vo: kt:= kt+ 1; r:=r+1; Q[r]:=x ; - Khi lấy một phần tử ra khỏi hng đợi cần đọc nội dung Q(f) v tăng f lên 1: Lấy ra: x:= Q[f]; f:= f+1; kt:= kt -1; Tuy nhiên, nếu theo dõi hoạt động của hng đợi sau một loạt thao tác thêm vo, lấy ra đợc triển khai đơn giản nh trên sẽ có hiện tợng hng đợi bò trờn, di chuyển dần đi trong bộ nhớ. f r xxxxx Hình 13.3: hng đợi dịch dần ra ngoi mảng. Để khắc phục hiện tợng ny cần hạn chế một vùng nhớ, chỉ cho mảng các phần tử xoay trở trong vùng ny. Giải pháp l nối đầu đuôi thnh vòng tròn. Do đó phải sử dụng phép chia đồng d modulo trong tính toán các chỉ số f, r. r f x xxxxxx Hình 13.4: Hng đợi nối vòng tròn. - Nối vòng tròn khi thêm vo. Nếu r = max_kt -1 thì r+1 vợt ra ngoi mảng. Cần lộn trở lại đầu mảng nh hình vẽ, tức l cần có r+1:= 0. Công thức tính vị trí của phần tử đuôi phải thay đổi lại l r:= (r+1) Mod max_kt. - Nối vòng tròn khi lấy ra. Khi lấy ra, địa chỉ f của đầu hng đợi cũng cộng thêm 1. Do đó, vấn đề hon ton tơng tự nh trên. Công thức tính lại vị trí đầu hng đợi l f:= (f+1) Mod max_kt. 3.2.2 Thủ tục chi tiết. Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 197 Lập trình bằng Turbo Pascal Procedure Enqueue(x: kiểuphầntử; VAR Q: HangDoi ); begin if Q.kt = max_kt then bao loi tran else begin Q.r:=(Q.r + 1) MOD max_kt; Q.kt:= Q.kt + 1; Q.PhanTu[Q.r]:= x; end end; Procedure Dequeue(Q: HangDoi; x:kiểuphầntử); begin if Q.kt = 0 then bao loi rong else begin x:= Q.PhanTu.[Q.f]; Q.f:= (Q.f + 1) mod max_kt; Q.kt:= Q.kt -1; end end; 4. Danh sách nối đơn. 4.1 Mô tả. Nhợc điểm của danh sách mảng l thêm vo lấy ra phiền toái do phải dồn chỗ. Cấu trúc xếp liên tiếp các phần tử thnh mảng chỉ thích hợp cho kiểu ngăn xếp, hng đợi. Muốn thực hiện một danh sách với thao tác thêm bớt phần tử một cách thuận tiện tại bất cứ vị trí no ta cần khắc phục nhợc điểm của cách tổ chức xếp liên tiếp các phần tử bằng cách dùng con trỏ để móc nối, sử dụng liên kết động. Khi thêm vo phần tử hoặc lấy ra phần tử chỉ cần sủa lại các liên kết động. Cần phải gắn vo mỗi phần tử của danh sách một con trỏ để trỏ đến phần tử đứng sau nó. Bằng cách thay đổi giá trị của con trỏ ny ta dễ dng đảo vị trí, chèn thêm, gỡ ra các phần tử của danh sách. 4.2 Cấu trúc móc nối. 4.2.1 Phân tích. Một danh sách móc nối cấu tạo từ các nút - node. Mỗi nút gồm tối thiểu hai trờng: Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 198 [...]... nội 213 Lập trình bằng Turbo Pascal 4 Xây dựng danh sách móc nói các số nguyên đợc sinh ngẫu nhiên Số chẵn lấy dấu trừ, số lẻ lấy dấu cộng Chèn thêm để có dãy đan dấu 5 Xây dựng danh sách móc nối các số thực Tìm phần tử lớn nhất, bé nhất 6 Trộn hai danh sách móc nối số thực đã có th tự tăng dần thnh một danh sách có thứ tự tăng dần Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 214 Lập trình bằng Turbo Pascal. .. Đình Hoá, Viện CNTT - ĐHQG H nội 204 Lập trình bằng Turbo Pascal 6 Ví dụ ứng dụng của danh sách móc nối 6.1 Cải tiến chơng trình quản lí hồ sơ Lại xét bi toán quản lí hồ sơ của sinh viên Ta đã xây dựng một chơng trình quản gồm có các chức năng tạo lập, liệt kê, tìm kiếm, thêm vo cuối v huỷ một hồ sơ khỏi danh sách Vì cha sử dụng con trỏ v biến động, thực hiện danh sách bằng mảng nên thao tác thêm bản ghi... ĐHQG H nội 215 Lập trình bằng Turbo Pascal Phần mềm: l các trình điều khiển thiết bị, gọi l các Driver, ở đây l trình điều khiển việc hiển thị mn hình Cùng một vỉ mạch phục vụ mn hình nhng dùng các trình điều khiển khác nhau thì nhận đợc các chế độ hiển thị khác nhau Ví dụ, nếu chỉ dùng 2 bit để biểu thị mu sẽ có thể hiển thị 22= 4 mu Nếu dùng 4 bit sẽ có thể hiẻn thị 24 =16 mu Nếu dùng 8 bit sẽ có thể... gọi các phép toán tơng ứng trên danh sách móc nối Do đó phần đầu của chơng trình l phần triền khai Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 205 Lập trình bằng Turbo Pascal 6.2.3 Các phép toán cơ sở trên danh sách móc nối Ta quy ớc đặt tên thống nhất các chơng trình con thực hiện các phép toán cơ bản trên danh sách móc nối bắt đầu bằng DS_ Các phép toán đó l: 1- DS_KhoiTao: Thủ tục khởi tạo danh sách móc... trỏ trỏ vo nút đầu của danh sách móc nối, T l con trỏ vo nút cuối Sau khi triển khai đầy đủ các chơng trình con đã thiết kế ở trên v lắp ráp vo khung chơng trình chính với môt bảng chọn nh đã biết ta nhận đợc chơng trình hon chỉnh dới đây Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 207 Lập trình bằng Turbo Pascal program QLSV; {danh sach moc noi} uses crt, BgChon; Const maxSize=10; Type HoSo= Record maso:integer;... phí lớn Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 202 Lập trình bằng Turbo Pascal Cải tiến, thực hiện thêm mối nối theo chiều ngợc lại Một nút có hai con trỏ, trỏ đến nút sau v đến nút trớc nó Left Data Right L R a b c d Hình 13.7: Danh sách nối kép Dĩ nhiên các mối nối phải của nút cực phải, mối nối trái của nút cực trái l bằng NIL Danh sách đợc quản lí bằng một con trỏ L, trỏ vo nút cực trái Để tiện duyệt... trong danh sách có nút no chứa khóa bằng x hay không Function DS_TimKiem(x: kiểudữliệu, L: DanhSachMocNoi): boolean; Var V: nutPtr; TimThay: boolean; Begin V:= L; TimThay:= false; While (V NIL) and not Timthay do begin if V^.Data = x then TimThay:= true else V:= V^.next; End; DS_TimKiem:= TimThay; End; Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 200 Lập trình bằng Turbo Pascal 4.3.4 Thêm nút vo sau Cho... sv.maso begin TimThay:= True; nut_kq:= V; break; end else begin nut_kq:= V; break; end end; then end; procedure DS_ThemNut_SauView(sv:HoSo, V:nutPtr); Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 2 08 Lập trình bằng Turbo Pascal var N:^nut; begin new(N); with N^.Data do maso:= sv.maso; hoten:= sv.hoten; namsinh:= sv.namsinh; end; if L=NIL then begin L:=N; N^.next:= NIL; V:=N; T:=N; end else begin N^.next:= V^.next;... sao cho đảm bảo đúng thứ tự mã số tăng dần 5- DS_HuyNut: Gỡ bỏ một nút khỏi danh sách móc nối Thủ tục ny dựa theo thuật giải đã đề nghị trong tiết 4 Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 206 Lập trình bằng Turbo Pascal 6.2.4 Các thủ tục khác 1- DocTepVaoDSmocnoi: Thủ tục thực hiện việc đọc nội dung của các bản ghi từ tệp v ghi vo trờng dữ liệu của các nút trong danh sách móc nối Nó sẽ đợc gọi sau khi... Next: nutPtr; End; Type DanhSachMocNoi = nutPtr; Hình dới đây minh hoạ một danh sách móc nối L L A B C D Hình 13.5: Hình ảnh của một danh sách móc nối Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 199 Lập trình bằng Turbo Pascal 4.3 Các phép toán Tại một thời điểm chỉ có thể truy cập đến một nút trong danh sách Đó l nút hiện hnh hay View Trong các thao tác đối với danh sách, cần có con trỏ V trỏ đến nút hiện . tử ny bằng cách chép dồn lên 1.4 Các u, nhợc điểm. Danh sách thể hiện bằng cấu trúc mảng có các u nhợc điểm sau. Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 189 Lập trình bằng Turbo Pascal. 204 Lập trình bằng Turbo Pascal 6. Ví dụ ứng dụng của danh sách móc nối. 6.1 Cải tiến chơng trình quản lí hồ sơ. Lại xét bi toán quản lí hồ sơ của sinh viên. Ta đã xây dựng một chơng trình. node. Mỗi nút gồm tối thiểu hai trờng: Nguyễn Đình Hoá, Viện CNTT - ĐHQG H nội 1 98 Lập trình bằng Turbo Pascal - Data: chứa dữ liệu hoặc con trỏ đến biến động chứa dữ liệu; Next: con trỏ

Ngày đăng: 23/07/2014, 21:20

Tài liệu cùng người dùng

Tài liệu liên quan