今天读了《大话数据时代》,就有感而发,用Pascal语言实现了线性表。
程序如有不妥当的地方,请提出:
program test301;
const maxlen=100;
type sqlist=record
data : array[1..maxlen] of char;
last : 0..maxlen
end;
var
i,p: integer;
l : sqlist;
x:char;
function length(var sq:sqlist) : integer;
begin
length :=sq.last;
end;
procedure intlist(var sq:sqlist);
begin
randomize;
for i:=1 to 10 do
begin
sq.data[i]:=chr(65+round(random(26)));
inc(sq.last);
end;
end;
procedure printlist(var sq:sqlist);
begin
for i:=1 to length(sq) do write(sq.data[i]);
writeln;
end;
procedure insert(var sq:sqlist;x:char;p:integer);
var
i:integer;
begin
for i:=sq.last+1 downto p do
sq.data[i+1]:=sq.data[i];
sq.data[p]:=x;
sq.last:=sq.last+1;
end;
procedure delete(var sq:sqlist;p:integer);
var
i:integer;
begin
for i:=p to sq.last do
sq.data[i]:=sq.data[i+1];
sq.last:=sq.last-1;
end;
begin
intlist(l);
printlist(l);
readln(x,p);
insert(l,x,p);
printlist(l);
readln(p);
delete(l,p);
printlist(l);
readln;
end.
谢谢。