文档介绍:数据结构总结
◆高精度运算
◆排序的应用
◆栈的应用
◆队列的应用
◆图的应用
数据结构总结
一、高精度运算
主要解决的问题:
1、高精度数的输入和保存。
2、运算时的进位与借位。
3、运算结果的保存。
4、运算结果的输出。
数据结构总结
1、实数减法
【问题描述:】
输入两个正的实数a,b,输出a-b的值。
【输入:】
两行,第一行a,第二行b,a和b的长度均小于1000位。
【输出:】
一行,a-b的值。
【样例输入:】
【样例输出:】
数据结构总结
1、数据的输入
2、比较实数a和b的大小。从而确定结果的正负号
if a>b then +
if a<b then -
if a=b then 0
3、借位问题。
4、结果的输出
实数减法
数据结构总结
◆ 数据的输入:
a和b的长度均小于1000位
1、string: 最大长度 255位。
2、单个数字字符读入;
3、ansistring:
最大长度:256*256-1=65535
数据结构总结
正整数大小的比较:
◆ 实数数据大小的比较:
S1 ;s2 (s1<>s2)
la:=length(s1);
lb:=length(s2);
if (la<lb) or ((la=lb)and(s1<s2)) then
s1<s2
Else s1>s2
数据结构总结
实数大小的比较:
a=‘’
b=‘’
补齐:容易比较大小
a=‘’
b=‘’
记录小数点的位置p.去掉小数点.
a=‘’
b=‘’
根据整数大小的比较。运算按照整数减法。
数据结构总结
◆ 结果的输出小数点的处理
输出合法要求:不能有多余的0
数据结构总结
k1:最后一位小数位置;
p:小数点位置。
k2:整数最高位。
k1:=1;
while (a[k1]=0) and (k1<=p) do inc(k1);
k2:=len;
while (a[k2]=0)and(k2>p+1) do dec(k2);
for i:=k2 downto p+1 do write(a[i]);
if k1<=p
then begin
write('.');
for i:=p-1 downto k1 do write(a[i]);
end;
…………..
k2
k1
p
数据结构总结