算法
HiCoderMan
热爱移动开发~正在深入~
展开
-
扑克顺子
// DataStructure.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "stdlib.h" #include void random(int *data,int length,int *result,int m){ srand((unsigned)time(0)); for (int i = 0; i < m; i++原创 2014-10-14 07:30:58 · 461 阅读 · 0 评论 -
递归创建链表
Node *create(){ int input=0; scanf("%d",&input); if (input!=-1) { Node *node=new Node(); node->v=input; node->nxt=create(); return node; } return NULL; }原创 2014-10-18 10:25:48 · 2140 阅读 · 0 评论 -
二分查找
int binarySearch(int *data,int low,int high,int value){ if (data==NULL||lowhigh) { return -1; } while (low<=high) { int mid=(low+high)>>1; if (data[mid]==value) { return mid; } el原创 2014-10-18 09:56:37 · 437 阅读 · 0 评论 -
快速排序
// DataStructure.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "stdlib.h" void quickSort(int *list,int low,int high){ if(low>=high) return ; int i=low; int j=high; int key=list[low]; w原创 2014-10-15 09:25:06 · 463 阅读 · 0 评论 -
按之字形顺序打印二叉树
使用两个栈。原创 2014-10-14 15:38:49 · 1520 阅读 · 2 评论 -
代码实现判断两棵树是否相等
//两棵树是否相等 bool compare(const Node *root1,const Node *root2){ if (root1==NULL&&root2==NULL) { return true; } else if(root1==NULL||root2==NULL) { return false; } if (root1->data!=root2->data原创 2014-10-14 14:04:00 · 4912 阅读 · 0 评论 -
二叉树的下一个结点
//找出二叉树中序遍历的某个结点的下一个结点 Node *GetNext(Node *pNode){ if (pNode==NULL) { return NULL; } //1.有右子树 if (pNode->right!=NULL) { //右子树中最左边结点 Node *p=pNode->right; while (p->left!=NULL) { p=原创 2014-10-14 15:13:18 · 961 阅读 · 0 评论 -
把二叉树打印成多行
需要用两个变量来记录下一层有多少个结点需要打印以及本次还有多少个结点未打印。原创 2014-10-14 14:14:56 · 1444 阅读 · 0 评论 -
判断一棵树是否对称
使用前根遍历和前根对称遍历,即根左右和根右左,然后判断原创 2014-10-14 14:12:40 · 1669 阅读 · 0 评论 -
链表是否有环
Node * isLoop(Node *head){ if (head==NULL||head->nxt==head) { return head; } Node *p=head; Node *q=head; while (p!=NULL&&p->nxt!=NULL) { p=p->nxt->nxt; q=q->nxt; if (p==q) { return原创 2014-10-18 11:30:24 · 506 阅读 · 0 评论