Danh mục

CHUỖI VÀ CÁC BÀI TOÁN TRÊN CHUỖI part 2

Số trang: 11      Loại file: pdf      Dung lượng: 125.66 KB      Lượt xem: 20      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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ácký 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ự 0và 1.
Nội dung trích xuất từ tài liệu:
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 jbegin 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ônglớ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 cuaxau, 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;typestacks=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Ýnhfunction 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);varp: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 exitelse if (first^.link=nil) then 17 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh exitelse 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; ...

Tài liệu được xem nhiều: