- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上大数据结构96-02
上海大学2000考研题
一 请完善下列程序,每小题在Pascal语言(a),c语言(b)中任选一题(共40分)
注意:每个空格填一个表示式或一个语句。
1 下列算法为奇偶交换排序,思路如下:第一趟对所有奇数的i,将a[i]和a[j]进行
比较,第二趟对所有偶数的i,将a[i]和a[j]进行比较每次比较时若a[i]>a[i+1],.将二
者交换,以后重复上述二趟过程,直至整个数组有序
程序.(a)
Procedure oeseort(var a:array[1..n] of integer);
Var flag:boolean; i,t:integer;
Begin
Repeat
Flag:=false;
For i:=1 to n step 2 do
If(a[i]>a[i+1]) then
[flag:= (1);
t:=a[i+1]; a[i+1]:=a[j];
(2)
]
for i:= (3) do
if (a[i]>a[i+1]) then
[flag:= (4) ;
t:=a[i+1];a[i+1]:=a[i];
a[i]:=t;
]
until (5)
end;
程序(b)
Void oesort (int a[n])
{int flag,i,t;
do {
flag:=0;
for(i=1;i<n;i++,i++)
{flag = (1);
t=a[i+1];a[i+12]=a[i];
(2) ;
}
for (3)
if (a[i]>a[i+1])
{flag= (4) ;
t=a[i+1];a[i+1]=a[i];
a[i]=t;
}
} while (5) ;
}
2 下列算法实现求采用顺序结构存储的串和串的一个最长公共子串。
程序(a)
Procedure maxcomstr(var s,t:orderstring;var index,length:integer);
Var i,j,klength1:integer; con:boolean;
While(i<=s.len) do [
J:=1;
While (j<=t.len) do [
If (s[i]=t[j] then [
K:=1; length1:=1;con:=true;
While con do
If (1) then [
Length1:=length1+1;k:=k+1;
]
else (2);
if(length1>length) then [
index:=i; length:=length1;
]
(3)
]
else (4)
]
(5)
]
end.
程序(b)
Void maxconstr(orderstring*s,*t; int index, length)
{ int i,j,k,length1,con;
index=0;length=0;i=1;
while((i<s.len) {
if (s[i]= =t[j]) {
k=1;length1=1;con=1;
while(con)
if (1) {
length1=length1+1;k=k+1;
}
else (2) ;
if (length1>length) {
index=i; length=length1;
}
(3) ;
}
else (4) ;
}
(5)
}
}
设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有
非空的左,右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿
子的结点个数和叶子结点个数N0.N2NLNR,N0都是全局量,且在调用count(t)之
前都置为0.
程序(a)
ty
文档评论(0)