声明,本文所有11道算法题目,覆盖了基本上所有常见的二叉树问题,全都用C#实现,并测试通过,代码下载:BinNode.zip目录:1.二叉树三种周游(traversal)方式:2.怎样从顶部开始逐层打印二叉树结点数据3.如何判断一棵二叉树是否是平衡二叉树4.设计一个算法,找出二叉树上任意两个节点的最近共同父结点,复杂度如果是O(n2)则不得分。5.如何不用递归实现二叉树的前序/后序/中序遍历?6.在二叉树中找出和为某一值的所有路径7.怎样编写一个程序,把一个有序整数数组放到二叉树中?8.判断整数序列是不是二叉搜索树的后序遍历结果9.求二叉树的镜像10.一棵排序二叉树(即二叉搜索树BST),令 Read More
声明,本文所有9道算法题目,覆盖了基本上所有常见的栈/队列问题,全都用C#实现,并测试通过,代码下载:StackAndQueue.zip目录:1.设计含min函数的栈,要求min、push和pop的时间复杂度都是o(1)。2.设计含min函数的栈的另解3.用两个栈实现队列4.用两个队列实现栈5.栈的push、pop序列是否一致6.递归反转一个栈,要求不得重新申请一个同样的栈,空间复杂度o(1)7.给栈排个序8..如何用一个数组实现两个栈9..如何用一个数组实现三个栈1.设计含min函数的栈,要求min、push和pop的时间复杂度都是o(1)。 算法思想:需要设计一个辅助栈,用来存储当前栈中. Read More
声明,本文所有13道算法题目,覆盖了基本上所有常见的单链表问题,全都用C#实现,并测试通过,代码下载:TestLink.zip1.单链表反转2.找出单链表的倒数第4个元素3.找出单链表的中间元素4.删除无头单链表的一个节点5.两个不交叉的有序链表的合并6.有个二级单链表,其中每个元素都含有一个指向一个单链表的指针。写程序把这个二级链表称一级单链表。7.单链表交换任意两个元素(不包括表头)8.判断单链表是否有环?如何找到环的“起始”点?如何知道环的长度?9.判断两个单链表是否相交10.两个单链表相交,计算相交点11.用链表模拟大整数加法运算12.单链表排序13.删除单链表中重复的元素首先写一个单 Read More
单链表递归逆序实现代码:#include using namespace std;struct node { int data; node*next;} /* optional variable list */;node* reverse(node * head){ if(head==NULL || head->next==NULL) return head; node* tail= head->next; node* newHead= reverse(head->next); tail->next=head; head->next=NU... Read More