CHUỖI VÀ CÁC BÀI TOÁN TRÊN CHUỖI part 2
lượt xem 15
download
Chuỗi là một dãy các ký tự được chứa trong một vùng liên tục của bộ nhớ. Các ký tự này có thể là ký tự chữ, ký tự số hoặc ký tự đặc biệt. Chuỗi ký tự (text string) có thể được xem như là dãy các chữ, các số và các ký tự đặc biệt. Một loại chuỗi khác là chuỗi nhị phân (binary string), đó là một dãy các kí tự 0 và 1.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: CHUỖI VÀ CÁC BÀI TOÁN TRÊN CHUỖI part 2
- begin writeln(‘chuoi can tim la:’,p); end; Function Bmsearch (p,a:st):integer; Var i,j,m,n:integer; skip :array[1..charno]of interger; procedure Initskip; var i:1..charno; j:integer; begin for i:=1 to charno do skip[i]=m; for j:=1 to m do if skip[ord(p[j])]=m then skip[ord(p[j])]=m-j; end; begin m:=length(p); n:=length(a); i nitskip; i :=m; j :=m; repeat if a[i]=p[j] then begin i:=i-1; j:=j-1; end; begin if m-j+1>skip[ord(a[i])] then i :=i+m-j+1 else i:=i+skip[ord(a[i])]; j:=m; end; until (jn); if j
- begin clrscr; init; bmsearch(a,p); write(‘vi tri cua ky tu dau cua chuoi p trong a la :’,bmsearch(p,a):2) ; writeln ; result ; readln ; end. c. Phân tích giải thuật Số lần so sánh : Cmax=m+n Số bước thực hiện trong trường hợp bộ ký tự không nhỏ và chuỗi p không lớn là: S=n/m {$M $4000,0,0} Program Bai_tap_tren_xau; uses crt; type m= array [1..9] of string; const menu:m=(' 1. Dao nguoc xau ',' 2. Tinh chieu dai cua xau',' 3. Chi so cua xau',' 4. Lay xau ky tu con', ' 5. In xau khong de quy',' 6. In xau de quy',' 7. Bai 5.2',' 8. Bai 5.5',' 9. Thoat'); type infor=char; ref=^elemen; elemen=record info:infor; link:ref; 13 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh
- end; var first:ref; const max=1000; type stacks=record index:integer; data:array[1..max] of integer; End; stackc=record index:integer; data:array[1..max] of char; end; stackR=record index:integer; data:array[1..max] of real; End; var step:integer; d,g:ref; ch1,h,c1:char; i1,n,f,e,b1,b2:integer; i:integer; s:string; stack:stackc; kt:boolean; t:real; nu,r: integer; stack1:stacks; {---------------------------------------------------------} 14 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh
- function themdau(var first:ref;NewInfo:Infor):ref; var p:ref; begin new(p); p^.info:=NewInfo; p^.link:=first; first:=p; themdau:=p; end; {--------------------------------------------------------} function themcuoi(var q:ref;NewInfo:Infor):ref; var p,scan:ref; begin New(p); p^.Info:=NewInfo; p^.link:=nil; if q = nil then q :=p else Begin scan:=q; while scan^.linknil do scan:=scan^.link; scan^.link:=p; End; themcuoi:=p; end; 15 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh
- {--------------------------------------------------------} procedure xoadau(var first:ref); var p:ref; begin if firstnil then b egin p:=first; first:=p^.link; dispose(p); end; end; {-----------------------------------------------------} procedure xoacuoi(var first:ref); var p,q:ref; begin q :=first; p :=q^.link; if(first=nil)then exit; if(p=nil)then b egin dispose(q); first:=nil; end else b egin while(p^.linknil) do 16 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh
- begin p:=p^.link; q:=q^.link; end; d ispose(p); q ^.link:=nil; end; end; {----------------------------------------------------------} procedure inra(first:ref); var p:ref; begin p:=first; while(pnil) do begin write(p^.info); p:=p^.link; end; end; {---------------------------------------------------------} procedure dao(var first:ref); var a,b,c:ref; begin if(first=nil) then exit else if (first^.link=nil) then 17 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh
- exit else a:=nil; b:=first; c:=first^.link; while(cnil) do begin b^.link:=a; a:=b; b:=c; c:=c^.link; end; b ^.link:=a; first:=b; end; {-----------------------------------------------------------} function chieudai(first:ref):integer; var d em:integer; p :ref; begin p:=first; dem:=0; while(pnil) do begin p:=p^.link; dem:=dem+1; end; 18 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh
- chieudai:=dem; end; {-----------------------------------------------------------} function chiso(first:ref;d:integer):infor; var p:ref; dem:integer; begin p:=first; dem:=1; while(dem
- begin q:=q^.link; inc(dem); end; if(q=nil) then begin xaukitucon:=nil; exit; end; n ew(daumoi); daumoi^.info:=q^.info; duoimoi:=daumoi; for i:=2 to n do begin q:=q^.link; if(qnil) then begin new(temp); temp^.info:=q^.info; duoimoi^.link:=temp; duoimoi:=temp; end else break; end; duoimoi^.link:=nil; xaukitucon:=daumoi; end; {------------------------------------------------------------} 20 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh
- procedure inxau(first:ref); {khong de quy} var p:ref; begin p:=first; while(pnil) do begin write(p^.info); p:=p^.link; end; end; {----------------------------------------------------------} procedure inxaudq(first:ref); var p:ref; begin p:=first; if(first=nil) then exit else begin write(p^.info); inxaudq(p^.link); end; end; {-----------------------------------------------------} procedure writestacks(stack:stacks); var i:integer; 21 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh
- begin for i:=0 to stack.index do write(stack.data[i]); end; {--------------------------------------------------------} procedure lnits(var stack:stacks); begin stack.index:=0; end; {---------------------------------------------------------} function emptys(var stack:stacks):boolean; begin if stack.index=0 then emptys:=true else emptys:=false; end; {-------------------------------------------------------------} function Pushs(var stack:stacks;dt:integer):boolean; Begin if stack.index=max+1 then pushs:=false else Begin inc(stack.index); pushs:=true; stack.data[stack.index]:=dt; end; End; {--------------------------------------------------------} function pops(var stack:stacks;var dt:integer):boolean; begin 22 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài thực hành số 5: Làm việc với xâu kí tự
2 p | 246 | 79
-
Thuật toán tìm chuỗi suy diễn
5 p | 411 | 66
-
CHƯƠNG 4: XỬ LÝ CÁC HÀM TOÁN HỌC
104 p | 179 | 49
-
CHUỖI VÀ CÁC BÀI TOÁN TRÊN CHUỖI
44 p | 205 | 47
-
Bài giảng môn học lý thuyết ÔTÔMÁT & NNHT
23 p | 78 | 33
-
CHUỖI VÀ CÁC BÀI TOÁN TRÊN CHUỖI part 1
11 p | 142 | 23
-
Bài giảng Lập trình cơ bản bài 8: Mảng, con trỏ và xâu ký tự
67 p | 136 | 11
-
CHUỖI VÀ CÁC BÀI TOÁN TRÊN CHUỖI part 3
11 p | 64 | 7
-
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - ThS. Đặng Bình Phương
20 p | 98 | 7
-
CHUỖI VÀ CÁC BÀI TOÁN TRÊN CHUỖI part 4
11 p | 75 | 6
-
Nghiên cứu ứng dụng kỹ thuật trí tuệ nhân tạo trong bài toán dự báo giá một số mặt hàng
23 p | 16 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 3 - Bùi Tiến Lên
50 p | 25 | 5
-
Bài giảng Lập trình nâng cao - Phan Hồ Duy Phương
62 p | 16 | 5
-
Bài giảng Lập trình nâng cao: Bài 4+5+6 - Trương Xuân Nam
25 p | 31 | 4
-
Bài giảng Lập trình nâng cao: Bài 1 - Trương Xuân Nam
18 p | 21 | 2
-
Cấu trúc của các chuỗi phổ biến dựa trên các chuỗi đóng và chuỗi sinh
13 p | 12 | 1
-
Theo vết đa đối tượng bằng giải thuật lọc hạt trên cơ sở của chuỗi Markov Monte Carlo
5 p | 23 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn