摘要: 据说有个计算圆周率的外星人程序,如下:#include<cstdio>#include<cstdlib> int a=10000,b,c=8400,d,e,f[8401],g;int main(){ for(;b-c;) f[b++]=a/5; for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a) for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b); system("pause"); return 0;}稍微整理:#include<cstdi 阅读全文
posted @ 2013-04-18 16:50 一枚程序员 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。10/ \6 14/ \ / \4 8 12 16转换成双向链表4=6=8=10=12=14=16。首先我们定义的二元查找树节点的数据结构如下:struct BSTreeNode{int m_nValue; // value of nodeBSTreeNode *m_pLeft; // left child of nodeBSTreeNode *m_pRight; // right child of node};思想:1.构造二叉查找树;2.中序遍历二叉查找树,因此结点按从小到大顺序访 阅读全文
posted @ 2013-04-18 16:20 一枚程序员 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 二叉排序树(Binary Sort Tree)又称二叉查找树或二叉搜索树。 它或者是一棵空树;或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树。通俗地讲很简单:一句话就是左孩子比父节点小,右孩子比父节点大,还有一个特性就是”中序遍历“可以让结点有序。如下图:几种常见的操作:1、二叉树数据结构struct BSTNode{ int data; // value of node BSTNode *lchild; // left ch... 阅读全文
posted @ 2013-04-18 15:56 一枚程序员 阅读(366) 评论(0) 推荐(0) 编辑