回 帖 发 新 帖 刷新版面

主题:初来炸道,问几个问题,望大家多多帮助拉?

考2级C中公共基础知识涉及数据结构,学校要大2才开这课,所以先自学起来,现在产生几个问题,可能菜了点:
1.在线性链表的基本运算中,书中提到"为了要在线性链表中插入一个新元素,首先要给该元素分配一个新结点,以便用于存储该元素的值.[color=FF0000]新结点可以从可利用栈中取得[/color]"这里说的用栈解决是什么意思啊,在后文中删除结点那也说将要删除的结点放回可利用栈,是不是将多余的空间地址用栈的形式放一起,那其他结构为什么不行呢,比如队列能不能说明下,谢谢.
2.希尔排序法中比较次数为O(n1.5次方),这个怎么得出来的啊
3.堆排序中堆应该指的是线性表,为何书上举例是2叉树啊,树如何表示他是有序无序的?
4.做后面习题时有道:
设栈S的初始状态为空.元素a,b,c,d,e,f依次通过栈S,若出栈的顺序为b,d,c,f,e,a,则栈S的容量至少应该为多少?请问这题是什么意思?栈的容量是什么概念?
5.还有道:
设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1.则T中的叶子结点数为多少?问下这到如何解,按照题说度为2的结点是2个,那度为0的结点就是3个咯?那答案不就应该是3吗,正确答案是8

回复列表 (共4个回复)

沙发

一、题目没看明白

二、根据算法算出来的,当然,选择不同的步长得出来的答案不一样

三、堆排序不是指线性表,书上说的应该是二叉堆

四、栈是堆栈,堆栈当然有大小了,而这题问得是中间最多会入栈多少次

五、出度?入度?抱歉,没看明白

板凳

我们的道都被你炸了……

3 楼

呵呵炸得好

4 楼

个人理解,仅供参考:
1中所说的栈是由系统自动维护的栈,并不是程序设计人员自己建立的栈
这个过程由系统完成,对于上层用户是透明的.

2.使用不同增量的希尔排序的时间代价不同,但是都突破了O(n方)
  使用Hibbard增量的希尔排序的时间代价是O(N的二分之三次方)
  这个证明需要堆垒数论中的某些结论, 恕我愚笨, 不太会

3.4 看一楼的解答

5.http://www.programfan.com/club/showbbs.asp?id=215401 里面我有类似回帖,楼主可研究之

PS: 要致富先修路 请不要炸道

我来回复

您尚未登录,请登录后再回复。点此登录或注册