Tài liệu Cấu trúc dữ liệu
Số trang: 48
Loại file: doc
Dung lượng: 660.50 KB
Lượt xem: 29
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tài liệu Cấu trúc dữ liệu sau đây được biên soạn nhằm trang bị cho các bạn những kiến thức tổng quan về cấu trúc dữ liệu và danh sách trong cấu trúc dữ liệu. Mời các bạn tham khảo tài liệu để bổ sung thêm kiến thức về lĩnh vực này.
Nội dung trích xuất từ tài liệu:
Tài liệu Cấu trúc dữ liệu Chương1:TỔNGQUANVỀCẤUTRÚCDỮLIỆU o0o1.1.Kháiniệmvềcấutrúcdữliệu. Cấutrúcdữliệu(CTDL)làmộtcáchtổchứcdữliệucủabàitoán.CTDLcóthểdo ngônngữlậptrìnhđịnhnghĩatrướchoặccóthểdongườisửdụngđịnhnghĩa. Cấutrúcdữ liệutốtthìthuậttoánxử lýbàitoánmớitốiưu.Chínhvìvậy,Niklauswirthđãtổngkết:“Cấutrúcdữliệu+thuậttoán=Chươngtrình”. Cáchbiểudiễntối ưumộtcấutrúcdữ liệutrongbộ nhớ đượcgọilàcấutrúclưutrữ(storagestructure).Cóthểcónhiềucấutrúclưutrữchocùngmộtcấutrúcdữliệu.Cấutrúcdữliệutươngứngvớibộnhớgọilàlưutrữ tronghaytươngứngvớibộnhớngoàigọilàlưutrữngoài. Thôngthườngmộtkiểudữliệuđượcđịnhnghĩanhưsau:MộtkiểudữliệuTlàmộtcặpT=trongđó:V(value):LàmộttậpcáctrịmàmộtbiếncókiểuTnhậnđược.O(Operator):LàtậphợpcácthaotáctrênV.Vídụ:a.T Integer=V={32768,...,32767};O={+,,*,/,mod,div,xor,,...}b.T Boolean=V={True,False};O={And,Or,Xor,Not,,=,…} Mộtcấutrúcdữliệulàmộtkiểudữliệuđượcxâydựngtừ nhữngkiểudữliệuđã biết,trongtrườnghợpnàychotamộtCTDLtươngứngvớimộtkiểudữliệuđãcho.1.2.Cáccấutrúcdữliệucănbản.1.2.1.Cáckiểudữliệucănbản.KiểuInteger(nguyên–2byte,32768..32767).Gồmtậphợpconcácsốnguyên.Tấtcảcácphéptoántrêndữliệuintegerđềutuânthủcácquitắcsốhọc.Cáctoántửchuẩn gồmbốnphéptoánsốhọccơbản:cộng(+),trừ(),nhân(*),chianguyên(div).KiểuReal (thực–6byte,2.9E39..1.7E38).Gồmtậphợpconcủacácsố thực,cáctoántửchuẩngồmbốnphéptoánsốhọccơbảnlà:công(+),trừ(),nhân(/).KiểuBoolean(luậnlý–1bit).Gồmhaigiátrị luânlýtrue(đúng)vàfalse(sai).Cáctoántửluậnlýgồmbaphéptoáncơbản:not(phủđịnh),and(và)vàor(hay). Cácphéptoánsosánhchokếtquả làmộtgiátrị luậnlý.Cácphéptoánsosánh gồm: =bằng 1 khácbằng(khác) =lớnhơnhoặcbằngKiểuchar(kítự–1byte):Gồmtậphợpcáckítựinđược.Cáckítựthườngdùnglà: +Kiểuchargồm26chữLatin((‘A’ VAR:;+Khaibáotrựctiếp: VAR :ARRAY[chỉsố]OF;Chúý:ChỉsốtrongkhaibáođốivớiPascalphảiđượcxácđịnhtrướcở khaibáohằng hoặcghicụthể.*Mảnghaichiều.Cúpháp:+Khaibáogiántiếp: TYPE =ARRAY[chỉsố1,chỉsố2]OF; VAR :;+Khaibáotrựctiếp: VAR :ARRAY[chỉsố1,chỉsố2]OF;Vídụ: TYPE Mangnguyen=Array[1..100]ofInteger; Matrix=Array[1..10,1..10]ofInteger; MangKytu=Array[Byte]ofChar; VAR A:Mangnguyen; M:Matrix; C:MangKytu;Hoặc: VAR A:Array[1..100]ofInteger; C:Array[Byte]ofChar;b.Kiểuxâukýtự. Chúngtagọikiểudữliệucógiátrịlàtậpnhữngkítựlàkiểuxâukítựhaynóimộtcáchngắngọnlàkiểuxâu. Pascalcótừ khoáSTRING để ngườidùngkhaibáochodữ liệucógiátrị làtậpnhữngkítự. VídụtakhaibáobiếnAcókiểulàtậpnhữngkítựnhưsau: VARA:STRING;máydànhchobiếnAcóthểlưugiữđượcmộttậpcókhôngquá255kítự. Hằngvănbảnphảiđểtrongcặpdấunháycao(‘).*Khaibáo.TYPE TênKiểu=STRING[Max]; VAR Tênbiến:TênKiểu;hoặckhaibáobiếntrựctiếp: 3 VAR Tênbiến:STRING[Max];TrongđóMaxlàsốkýtựtốiđacóthểchứatrongchuỗi(Max [0,255]).Nếukhôngcókhaibáo[Max]thìsốkýtựmặmặcđịnhtrongchuỗilà255.Vídụ: Type Hoten=String[30]; St80=String[80]; Var Name:Hoten; Line:St80;St:String;{Stcótốiđalà255kýtự}*Truyxuấtphầntử. CóthểsửdụngcácthủtụcxuấtnhậpWrite,Writeln,ReadlnđểtruyxuấtcácbiếnkiểuString. Đểtruyxuấtđếnkýtựthứkcủaxâukýtự,tasửdụngcúphápsau:Tênbiến[k].*CácthủtụcvàhàmtrênxâukýtựHàmlấychiềudàicủaxâykýtự LENGTH(St:String):Integer;HàmCOPY(St:String;Pos,Num:Byte):String;LấyramộtxâucontừtrongxâuStcóđộdàiNumkýtựbắtđầutừvịtríPos.HàmPOS(SubSt,St:String):Byte;KiểmtraxâuconSubStcónằmtrongxâuSthaykhông?NếuxâuSubStnằmtrongxâu Stthìhàmtrả về vị tríđầutiêncủaxâuconSubSttrongxâuSt,ngượclạihàmtrả vềgiátrị0.ThủtụcDELETE(VarSt:String;Pos,Num:Byte);XoátrongxâuStNumkýtựbắtđầutừvịtríPos.ThủtụcINSERT(SubSt:String;VarSt:String;Pos:Byte);Chè ...
Nội dung trích xuất từ tài liệu:
Tài liệu Cấu trúc dữ liệu Chương1:TỔNGQUANVỀCẤUTRÚCDỮLIỆU o0o1.1.Kháiniệmvềcấutrúcdữliệu. Cấutrúcdữliệu(CTDL)làmộtcáchtổchứcdữliệucủabàitoán.CTDLcóthểdo ngônngữlậptrìnhđịnhnghĩatrướchoặccóthểdongườisửdụngđịnhnghĩa. Cấutrúcdữ liệutốtthìthuậttoánxử lýbàitoánmớitốiưu.Chínhvìvậy,Niklauswirthđãtổngkết:“Cấutrúcdữliệu+thuậttoán=Chươngtrình”. Cáchbiểudiễntối ưumộtcấutrúcdữ liệutrongbộ nhớ đượcgọilàcấutrúclưutrữ(storagestructure).Cóthểcónhiềucấutrúclưutrữchocùngmộtcấutrúcdữliệu.Cấutrúcdữliệutươngứngvớibộnhớgọilàlưutrữ tronghaytươngứngvớibộnhớngoàigọilàlưutrữngoài. Thôngthườngmộtkiểudữliệuđượcđịnhnghĩanhưsau:MộtkiểudữliệuTlàmộtcặpT=trongđó:V(value):LàmộttậpcáctrịmàmộtbiếncókiểuTnhậnđược.O(Operator):LàtậphợpcácthaotáctrênV.Vídụ:a.T Integer=V={32768,...,32767};O={+,,*,/,mod,div,xor,,...}b.T Boolean=V={True,False};O={And,Or,Xor,Not,,=,…} Mộtcấutrúcdữliệulàmộtkiểudữliệuđượcxâydựngtừ nhữngkiểudữliệuđã biết,trongtrườnghợpnàychotamộtCTDLtươngứngvớimộtkiểudữliệuđãcho.1.2.Cáccấutrúcdữliệucănbản.1.2.1.Cáckiểudữliệucănbản.KiểuInteger(nguyên–2byte,32768..32767).Gồmtậphợpconcácsốnguyên.Tấtcảcácphéptoántrêndữliệuintegerđềutuânthủcácquitắcsốhọc.Cáctoántửchuẩn gồmbốnphéptoánsốhọccơbản:cộng(+),trừ(),nhân(*),chianguyên(div).KiểuReal (thực–6byte,2.9E39..1.7E38).Gồmtậphợpconcủacácsố thực,cáctoántửchuẩngồmbốnphéptoánsốhọccơbảnlà:công(+),trừ(),nhân(/).KiểuBoolean(luậnlý–1bit).Gồmhaigiátrị luânlýtrue(đúng)vàfalse(sai).Cáctoántửluậnlýgồmbaphéptoáncơbản:not(phủđịnh),and(và)vàor(hay). Cácphéptoánsosánhchokếtquả làmộtgiátrị luậnlý.Cácphéptoánsosánh gồm: =bằng 1 khácbằng(khác) =lớnhơnhoặcbằngKiểuchar(kítự–1byte):Gồmtậphợpcáckítựinđược.Cáckítựthườngdùnglà: +Kiểuchargồm26chữLatin((‘A’ VAR:;+Khaibáotrựctiếp: VAR :ARRAY[chỉsố]OF;Chúý:ChỉsốtrongkhaibáođốivớiPascalphảiđượcxácđịnhtrướcở khaibáohằng hoặcghicụthể.*Mảnghaichiều.Cúpháp:+Khaibáogiántiếp: TYPE =ARRAY[chỉsố1,chỉsố2]OF; VAR :;+Khaibáotrựctiếp: VAR :ARRAY[chỉsố1,chỉsố2]OF;Vídụ: TYPE Mangnguyen=Array[1..100]ofInteger; Matrix=Array[1..10,1..10]ofInteger; MangKytu=Array[Byte]ofChar; VAR A:Mangnguyen; M:Matrix; C:MangKytu;Hoặc: VAR A:Array[1..100]ofInteger; C:Array[Byte]ofChar;b.Kiểuxâukýtự. Chúngtagọikiểudữliệucógiátrịlàtậpnhữngkítựlàkiểuxâukítựhaynóimộtcáchngắngọnlàkiểuxâu. Pascalcótừ khoáSTRING để ngườidùngkhaibáochodữ liệucógiátrị làtậpnhữngkítự. VídụtakhaibáobiếnAcókiểulàtậpnhữngkítựnhưsau: VARA:STRING;máydànhchobiếnAcóthểlưugiữđượcmộttậpcókhôngquá255kítự. Hằngvănbảnphảiđểtrongcặpdấunháycao(‘).*Khaibáo.TYPE TênKiểu=STRING[Max]; VAR Tênbiến:TênKiểu;hoặckhaibáobiếntrựctiếp: 3 VAR Tênbiến:STRING[Max];TrongđóMaxlàsốkýtựtốiđacóthểchứatrongchuỗi(Max [0,255]).Nếukhôngcókhaibáo[Max]thìsốkýtựmặmặcđịnhtrongchuỗilà255.Vídụ: Type Hoten=String[30]; St80=String[80]; Var Name:Hoten; Line:St80;St:String;{Stcótốiđalà255kýtự}*Truyxuấtphầntử. CóthểsửdụngcácthủtụcxuấtnhậpWrite,Writeln,ReadlnđểtruyxuấtcácbiếnkiểuString. Đểtruyxuấtđếnkýtựthứkcủaxâukýtự,tasửdụngcúphápsau:Tênbiến[k].*CácthủtụcvàhàmtrênxâukýtựHàmlấychiềudàicủaxâykýtự LENGTH(St:String):Integer;HàmCOPY(St:String;Pos,Num:Byte):String;LấyramộtxâucontừtrongxâuStcóđộdàiNumkýtựbắtđầutừvịtríPos.HàmPOS(SubSt,St:String):Byte;KiểmtraxâuconSubStcónằmtrongxâuSthaykhông?NếuxâuSubStnằmtrongxâu Stthìhàmtrả về vị tríđầutiêncủaxâuconSubSttrongxâuSt,ngượclạihàmtrả vềgiátrị0.ThủtụcDELETE(VarSt:String;Pos,Num:Byte);XoátrongxâuStNumkýtựbắtđầutừvịtríPos.ThủtụcINSERT(SubSt:String;VarSt:String;Pos:Byte);Chè ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Tài liệu Cấu trúc dữ liệu Cấu trúc dữ liệu căn bản Khái niệm cấu trúc dữ liệu Kiểu dữ liệu có cấu trúc Độ phức tạp thuật toánGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 318 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 162 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 150 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 139 0 0 -
Nghiên cứu thuật toán lý thuyết: Phần 2
61 trang 131 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 124 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 74 0 0 -
Ứng dụng và cài đặt cấu trúc dữ liệu bằng C: Phần 1
338 trang 73 0 0 -
49 trang 72 0 0