Archive for 5 3 月, 2010

数据结构课程设计

星期五, 5 3 月, 2010

下载

判断一个链表是否有循环,打印一个可能带环的链表中所有元素各一次。

寻找链表中倒数第m个元素。

判断一个ASCII字符串中是否有重复字符。

判断两个链表是否相交,寻找相交节点。

定义二叉树两个结点的最小距离为这两个结点的最近公共祖先分别到这两个结点的路径长度之和。请设计一种方法,找出给定二叉树中任意两个结点的最小距离,可以考虑以图形显示之。

设计一个程序实现二叉树的层次遍历,要求每层之间的数据用一个空格分开。二叉树采用二叉链表方式进行存储。

利用大顶堆实现一个优先队列。对于队列的操作应该至少支持下列几种指令:

   Void enqueue(int ObjectID, int Priority);

   Int dequeue();

   Void changeweight(int ObjectID, int newPriority);

函数enqueue向优先队列中插入一个ID号为ObjectID,优先级为priority的新对象。函数dequeue从优先队列中删除优先级最高的对象,并返回该对象的ID号。函数changeweight将ID号为ObjectID的对象的优先级改为newPriority。你需要一种机制,以便获取所需要对象在堆中的位置。你还需要对堆的实现进行修改,以存储对象在数组中的位置,使得堆中对象的修改可以在辅助数组结构中记录下来。

(更多…)