求助几道编程题 非常感谢 急
1.对任意给定的二叉树(顶点数自定)建立它的二叉链表存贮结构,并利用栈的五种基本运算(置空栈、进栈、出栈、取栈顶元素、判栈空)实现二叉树的先序、中序遍历,输出二种遍历的结果。
2.设单链表中存放n个字符,试设计一个 算法,使用栈判断该字符串是否中心对称,如 xyzzx即为中心对称字符串。
3.设有n个人围座成一圈,先从某一个人Pi 开始按逆时针的顺序报数,当数到第m个人时,该人出圈。然后从下一个人开始重新报数,…依次数下去,直到所有人都出圈为止。试选择两种合理的数据结构来表述上述问题,并在你设计的数据结构基础上编制程序,按这n个人的出圈次序输出这n个人的序列Pi1,Pi2,…Pin。
要求:
令n=10;m=3, . . .
Pi=5, Pi是代表某人的号码,
顺序为7,5,6,9, Pi P2
8,2,1,3,4,10。 P1
4.首先随机地产生1000个1-3000以内的互不相同的整数,对它们做以下存储。
要求:
1) 存储于一个数组中(不排序)
2) 存储于一个数组中(排序)
3) 存储于一个二叉排序树中。
在这三种存储结构形式中分别做查找运算,要求输入一个查找元素,输出各自的查找比较次数。