知识大全 数据结构考研分类复习真题 第五章 答案[30]
Posted 知
篇首语:人非圣贤,孰能无过。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第五章 答案[30]相关的知识,希望对你有一定的参考价值。
[题目分析]从n个数中 取出所有k个数的所有组合 设数已存于数组A[ n]中 为使结果唯一 可以分别求出包括A[n]和不包括A[n]的所有组合 即包括A[n]时 求出从A[ n ]中取出k 个元素的所有组合 不包括A[n]时 求出从A[ n ]中取出k个元素的所有组合
CONST n= k= TYPE ARR=ARRAY[ n] OF integer VAR A B ARR // A中存放n个自然数 B中存放输出结果 PROC outresult //输出结果 FOR j = TO k DO write(B[j]) writeln ENDP PROC nkbination(i j k integer) //从i个数中连续取出k个数的所有组合 i个数已存入数组A中 j为结果数组B中的下标 IF k= THEN outresult ELSE IF(i k≥ )THEN [ B[j]:=A[i] j:=j+ nkbination(i k j) nkbination(i k j ) ] ENDP
[算法讨论]本算法调用时 i是数的个数(题目中的n) k≤i j是结果数组的下标 按题中例子 用nkbination( )调用 若想按正序输出 如 … 可将条件表达式i k≥ 改为i+k ≤n 其中n是数的个数 i初始调用时为 两个调用语句中的i 均改为i+
cha138/Article/program/sjjg/201311/23039相关参考
.这是一个递归调用问题运行结果为DBHEAIFJCKGL ()FOR循环中每次执行PerfectShuffle(AN)和CompareExchange(AN)的结果 第次A[]=[] A[]
.() () ()i=j=即A[]  
()略 ()求广义表原子个数的递归模型如下 f(p)= PROCNumber(p:glist;VARn:integer) VARm:integer; n:=; IFp<>N
深度为长度为 ()略 ()表的长度为深度为 ()head(tail(head(head(head(tail(tail(tail(tail(A))))))))) 共享结构广义表A=(((bc
Head(Tail(Head(Head(L)))) Head(Head(Head(Tail(Head(Tail(L)))))) 类似本题的另外叙述的几个题解答如下 ()head(head(t
head(tail(head(tail(H)))) (b) (xyz) (de) GetHead(GetHead(GetTail(L))) 本算法中首先数组b中元素以逆置顺序放入d数组中
.每个元素个二进制位主存字长位故每个元素占个字长行下标可平移至到 () () ()s+ ()s+ . 公式 +L(
.错误有以下几处 ()过程参数没有类型说明()出错条件判断缺少OR(i+k>last+) ()删除元素时FOR循环应正向不应用反向DOWNTO()count没定义 低效体现在两处 (
公式LOC(aijk)=LOC(a)+[v*v*(ic)+v*(jc)+(kc)]*l(l为每个元素所占单元数) 第行第列 ()()() i(i)/+j(<=ij<
()k=(nj+)(j)/+ij+ (当i≥j时本题n=) k=(ni+)(i)/+ji+ (当i<j时本题n=) (