Issuu on Google+

1. 把一个链表反向,递归,非递归都写一遍。 1.试编写 3 个函数实现 (1)建立一个双向链表 (2)插入一个节点 (3)删除一个节点 2.自己定义数据结构,写出程序:二叉树的前序遍历。 3.实现双向链表删除一个节点 P,在节点 P 后插入一个节点,写出这两个函数。 4.下面哪种排序法对 12354 最快 a quick sort b.buble sort c.merge sort 5.哪种结构,平均来讲,获取一个值最快 a. binary tree b. hash table c. stack 6.一个二叉树的三种遍历方法的输出结果 7.链表按升序打印每打印完一个节点就将该节点从链表中删除

8.选择一种算法来整理出一个链接表。你为什么要选择这种方法?现在用 o(n)时间来做。

9. 用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表。

10.给两个变量,如何找出一个带环单链表中是什么地方出现环的?

11.哈希表和数组的定义,区别,优缺点。 12.链接表和数组之间的区别是什么? 任选一门语言,当场定义二叉排序树数据结构,写出两个函数:初始化,删除一 个节点,20 分钟 13.

递归的折半查找算法[不限语言]


14. 解释一下什么是 B+树,如何实现 B+树的查找和插入.(用图示) 15.实现双向链表删除一个节点 P,在节点 P 后插入一个节点,写出这两个函数。 13.排序方法比较 (intel) 排序方法 平均时间 直接插入排序 O(N2) 起泡排序 O(N2) 快速排序 O(Nlog2N) 简单选择排序 O(N2) 堆排序 O(Nlog2N) 归并排序 O(Nlog2N) 基数排序 O(d(n+radix))

最坏时间 辅助存储 O(N2) O(1) O(N2) O(1) O(N2) O(Nlog2N) O(N2) O(1) O(Nlog2N) O(1) O(Nlog2N) O(n) O(d(n+radix)) O(radix)

17.一个链表的操作,注意代码的健壮和安全性。要求: (1)增加一个元素; (2)获得头元素; (3)弹出头元素(获得值并删除)。 18.内排序算法 19.折半查找的复杂度,证明 20.sizeof()和 strlen()的使用. 21.顺序存储结构的优点,散列法的思想是什么? 22.汉罗塔算法,不能递归... 23.一个链表的结点结构 struct Node { int data ; Node *next ; }; typedef struct Node Node ; (1)已知链表的头结点 head,写一个函数把这个链表逆序 ( Intel) (2)已知两个链表 head1 和 head2 各自有序,请把它们合并成一个链表 依然有序。 (3)已知两个链表 head1 和 head2 各自有序,请把它们合并成一个链表


依然有序,这次要求用递归方法进行。 ( Autodesk) 24.编最优化 Bubble(int *pIntArray,int L),要求:交换元素不能用临时变量, 如果有序需要最优。


数据结构笔试题