数据结构
Devin__Yang
简历请投yangding@youzan.com 有赞零售招高级java 职位详情:https://www.zhipin.com/job_detail/1412453118.html?ka=job-10
展开
-
二叉树镜像--20150924
//题目描述:将一个二叉树处理为自身的镜像//思路:递归,将左右子树互换//树节点的结构struct BTreeNode{ int value; BTreeNode* pLeft; BTreeNode* pRight;}void getMirrorBTree(BTreeNode* pRoot){ //检验输入的合法性,增强程序鲁棒性,也同时是递归的终止条件原创 2015-09-25 22:02:41 · 434 阅读 · 0 评论 -
链表节点的增加和删除--20150923
//结构体形式struct LinkList{ int value; LinkLink* next;}//在链表尾增加节点void addTail(LinkList** pHead,int value ){ LinkList* pNode = new LinkList(); pNode->value = value; pNode->next = NULL原创 2015-09-23 22:11:11 · 505 阅读 · 0 评论 -
圆圈中剩下的最后的数字--20150928
//题目描述:0 1 2 3 4 。。。n-1 这n个数字围成一圈,从数字0开始每次从中删除第m个数字,求最后剩下的数字//思路:int LastRemainning(unsigned int n ,unsigned int m){ if(n<1||m<1){ return -1; } int last = 0; for(int i=2;i<=n;i++原创 2015-09-30 21:59:54 · 377 阅读 · 0 评论 -
手动实现pow(x,n)的功能--20150927
//题目描述:手动实现pow(x,n)的功能//思路:考虑指数为正和为负和为0的情况,考虑溢出,考虑double与0的比较。bool g_InvalidInput = false;//全局变量判断输入的合法性double power(double base,int expoent){ g_InvalidInput = false; //底数为0,指数为负时,输入非法 if(原创 2015-09-28 21:27:29 · 737 阅读 · 0 评论 -
从上到下遍历二叉树--20150925
//从上倒下出从左到右打印二叉树//思路:利用队列先进先出的特性,先将根节点从队尾入队列,//再从队头出队列并打印,再将其左子树从队尾入队列并打印,//再将右子树入队列并打印,递归下去。//二叉树节点结构struct BTreeNode{ int value; BTreeNode* pLeft; BTreeNode* pRight;}void PrintFromTop原创 2015-09-27 22:02:21 · 938 阅读 · 0 评论 -
求树的深度--20150926
//输入一个二叉树,求树的深度//思路:树的深度就是该树左右子树的最大深度加1,递归int TreeDepth(BTreeNode* pRoot){ if(pRoot == NULL){ return 0; } int nLeft = TreeDepth(pRoot-pLeft); int nRight = TreeDepth(pRoot-pRight原创 2015-09-28 20:46:21 · 782 阅读 · 0 评论 -
统计一个数的二进制中有几个1--20150926
//题目描述:统计一个数的二进制中有几个1//思路:n=n&(n-1);是将n的二进制最右边的1转为0,统计该操作可以执行的次数就是二进制中1的个数。int NumberOf1(int n){ int count=0; while(n){ ++count; n=n&(n-1); } return count;}原创 2015-09-28 20:39:47 · 490 阅读 · 0 评论 -
替换字符串中的空格为%20--20150925
//题目描述:将字符串中的空格转换成“%20”//思路:先统计字符串中有n空格,再将字符串增加2n个长度,//再用两个指针从后向前走,一个A初始指向新字符串最后,//另一个B指向旧字符串的最后,B向前走时把非空的字符放在A的位子,//A再向前走,若B指向了空格,则A依次赋值02%,直到走到字符串的头部。void ReplaceBlank(char string[],int length){原创 2015-09-27 23:32:31 · 577 阅读 · 0 评论 -
反转单链表+合并有序单链表+查找单链表中倒数第k个节点--20150924
//题目1:反转一个单链表。(这是2015年广联达公司校招的第一题,15分,在华科的沁园12幢701考试的博主记忆犹新)//思路:需要3个辅助指针,一个指针指向当前要反转的节点,//一个指向该节点的前一个,一个指向该节点的后一个,三个指针同时移动。//先把该节点的next指向前一个节点,然后把该节点赋值给前一个节点,//最后把下一个节点赋值给该节点,即完成一个节点的反转,//直到最后一个节原创 2015-09-25 23:23:18 · 732 阅读 · 0 评论 -
用栈实现队列--20150924
//题目描述:用栈来实现队列操作,要求在队尾插入在队头删除//思路:用两个栈stack1和stack2,元素全部在stack1进栈,//删除元素时,先从stack1中依次出栈到stack2,再从stack2中出栈template<typename T> class CQueue{ public: CQueue(void); ~CQueue(void);原创 2015-09-25 22:29:49 · 418 阅读 · 0 评论 -
SKU的笛卡尔积计算,未知规格数量
private static char SPLIT_STR = '|'; private static char SPLIT_InSTR = ','; public List generate(String s) { String[] skus = s.Split(SPLIT_STR); // the原创 2016-01-25 14:03:14 · 3096 阅读 · 0 评论