【求助】几道数据结构题, 大家给我讲讲~ 谢谢~~~

YAKSAING 2008-11-24 11:40:38
1. 设计将所有奇数移到所有偶数之前的算法。
void quickpass(int r[], int s, int t)
{
int i=s,j=t,x=r[s];
while(i<j)
{
while (i<j && r[j]%2==0) j=j-1; if (i<j) {r[i]=r[j];i=i+1;}
while (i<j && r[i]%2==1) i=i+1; if (i<j) {r[j]=r[i];j=j-1;}
}
r[i]=x;
}
}
这个r[i]=x 的作用,含义是什么? 看不大懂· 我认为没什么用~

2.设一颗m叉树的结点数为n,用多重链表表示其存储结构,则该树中有( n(m-1)+1 )个空指针域。 //怎么算出来的呢? 谢谢···

由于要考试,所以我再大量做题。 有些不懂的,请大家帮助讲解。。。 呵呵!!
...全文
156 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
YAKSAING 2008-11-24
  • 打赏
  • 举报
回复
r[i]=x;
下面多了一个 } 是没用的···
roadblossom 2008-11-24
  • 打赏
  • 举报
回复
mark
YAKSAING 2008-11-24
  • 打赏
  • 举报
回复
恩,不错!
高手!!!
那我就不客气了!!!。。。 嘿嘿!!
feilinhe 2008-11-24
  • 打赏
  • 举报
回复
2.计算时把树的结构看成了
0
/
0
/
0
...
这种结构,这样最后的一个节点是没有分支的,其他的节点都有一个分支,然后计算总的指针域为n*m
再减去有分支的节点数目为n-1,综合一下就是那个公式了
feilinhe 2008-11-24
  • 打赏
  • 举报
回复
1.这是由于在那两个while循环后会丢掉初始的那个r[s]值,所以要用x保存起来,
你可以用s[]={4,5,6,7,8}试一下s=0,t=4,结果好象是{7,5,4,6,8}
2.暂时想不起来了

33,009

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧