线性表的实现——多功能——原创

本文介绍了一个基于线性表的数据结构实现,包括初始化、打印、插入、删除等基本操作,并演示了如何通过查找元素来合并两个线性表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天读了一本关于线性表的书,写了一段代码:

program test301;
const maxlen=100;
type sqlist=record
   data : array[1..maxlen] of char;
   last : integer;
end;
var
  i,p: integer;
  l,A,B: sqlist;
  x:char;

function length(var sq:sqlist) : integer;
begin
  length :=sq.last;
end;
function locate(var sq:sqlist;x:char):integer;
var
  i:integer;
begin
  for i:=1 to length(sq) do begin
  if(sq.data[i]=x) then begin
  exit(i);
  end;
  end;
  exit(0);
end;
procedure initlist(var sq:sqlist);
begin

  for i:=1 to 5 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;
procedure merge(var A:sqlist;B:sqlist);
var
  i:integer;
begin
  for i:=1 to B.last do begin
  if(locate(A,B.data[i])=0) then insert(A,B.data[i],length(A)+1);
  end;
end;
begin
  randomize;
  initlist(A);
  initlist(B);
  printlist(A);
  printlist(B);
  readln;
  merge(A,B);
  printlist(A);
  readln;
end.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值