2013年8月9日
摘要: 转载于:http://www.cnblogs.com/junsky/archive/2009/08/06/1540727.html对负数的二进制表示有些遗忘,在网上找了一下资料,贴出来已备再次遗忘:假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为:00000000 00000000 00000000 000001015转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。现在想知道,-5在计算机中如何表示? 在计算机中,负数以其绝对值的补码形式表达。什么叫补码呢?这得从原码,反码说起。 原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。比 阅读全文
posted @ 2013-08-09 23:01 -赶鸭子上架- 阅读(13120) 评论(0) 推荐(2) 编辑
摘要: 题目一:求斐波那契数列第n项自己所写代码如下:#include "stdafx.h"#includelong Fibonacci(unsigned int N){ long F0 = 0; long F1 = 1; if(N == 0) return F0; else if(N == 1) return F1; else { int n = 2; while(n <= N) { F0 = F0 + F1; F1 = F0 + F1; ... 阅读全文
posted @ 2013-08-09 14:16 -赶鸭子上架- 阅读(270) 评论(0) 推荐(0) 编辑
  2013年8月8日
摘要: 题目:求旋转数组中的最小数字以下为自己所写代码:#include "stdafx.h"#include #include using namespace std;int RotateArrayMin(int* array, int low, int high);int main(int argc, char* argv[]){ const int length = 10; int array[length] = {15,17,18,3,5,6,7,9,11,12}; int Location = RotateArrayMin(array,0,length-1); ... 阅读全文
posted @ 2013-08-08 21:40 -赶鸭子上架- 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 第一次实际实现快速排序。。。,虽然之前理解其思想方法,但编程实现过程中仍出现了很多问题比如,区分一次快排和递归实现整体排序;递归时要注意递归终止条件(lowusing namespace std;//快速排序(QSort+QuickSort)//一次快排int QSort(int* list, int low,int high){ int SepValue = list[low]; while(low = list[low]) low++; list[high] = list[low]; } if(low == high) ... 阅读全文
posted @ 2013-08-08 16:48 -赶鸭子上架- 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 题目:两个单向队列构成一个栈//两个队列构成一个栈//StackWithTwoQueues#include //STL#includeusing namespace std;templateclass BStack{ public: BStack(); ~BStack(); void InStack(const T& elem); T OutStack(); private: queue q1; queue q2;};//思路:一个队列空,另一个队列则‘入栈’操作;// 在删除‘栈顶’... 阅读全文
posted @ 2013-08-08 12:01 -赶鸭子上架- 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.csdn.net/morewindows/article/details/6950917stl中的queue指单向队列,使用时,包含头文件。关键要会用queue,实际上就是掌握该类的各种操作,如下:常用函数push(e),pop(),front(),back(),size(),empty(),与栈的常用函数较为相似。在STL中,单向队列是以别的容器作为底层数据结构,再改变接口使之符合单向队列的特性。下面就给出单向队列的函数列表和VS2008中单向队列的源代码。VS2008中queue单向队列的源代码友情提示:初次阅读时请注意其实现思想,不要在细节上浪费过多的时间 阅读全文
posted @ 2013-08-08 11:14 -赶鸭子上架- 阅读(837) 评论(0) 推荐(0) 编辑
  2013年8月7日
摘要: //两个栈实现一个队列#include //STL#includeusing namespace std;templateclass CQueue{ public: CQueue(); ~CQueue(); void appendTail(const T& node); T deleteHead(); private: stack stack1; stack stack2;};//思路:一个栈做添加队尾元素用;另一个做删除队首元素用。// 操作时,对应栈有数据,另一个为空。templa... 阅读全文
posted @ 2013-08-07 23:32 -赶鸭子上架- 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 题目:由前序、中序遍历序列重建二叉树虽然思路能想到,但是实际写却无从下手。。。下面重现作者代码,多多实践。。。#include//首先定义二叉树节点struct BinaryTreeNode{ int bt_Value; BinaryTreeNode* bt_pLeft; BinaryTreeNode* bt_pRight;};//核心函数:ConstructCore(int* StartPreOrder, int* EndPreOrder, int* StartInOrder, int* EndInOrder);BinaryTreeNode* ConstructCore(i... 阅读全文
posted @ 2013-08-07 18:02 -赶鸭子上架- 阅读(216) 评论(0) 推荐(0) 编辑
  2013年8月6日
摘要: 到现在为止,看过的书+代码有一定量了,并且也参加了个比赛,给自己的总体感觉:编程需要的是灵活的头脑,书里的东西只是讲个规则、思想,其实际实现可以千差万别! 潜在的规则+灵活的思维 = 程序!在做面试题5时,发现Utilities文件夹下的内容太好了,基本上是那些数据结构的实现:链表、二叉树、树等(缺个图),准备通过学习这些代码来深入理解各个数据结构及其接口/成员函数。拿该题来说,解决单链表!!!题目:逆序打印单链表一、自己写单链表类及其操作花了一下午时间,无语了。。。1、List.h//单链表数据结构及基本操作//最大节点数const int MAXLENGTH = 50;//节点struc. 阅读全文
posted @ 2013-08-06 11:34 -赶鸭子上架- 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 转载:http://blog.csdn.net/morewindows/article/details/6950881栈(statck)这种数据结构在计算机中是相当出名的。栈中的数据是先进后出的(First In Last Out, FILO)。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出栈顶元素)、取得栈顶元素等操作。在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的特性就可以了。因此实现非常的方便。下面就给出栈的函数列表和VS2008中栈的源代码,在STL中栈一共就5个常用操作函数(top()、push()、pop()、 size()、empty() 阅读全文
posted @ 2013-08-06 09:33 -赶鸭子上架- 阅读(651) 评论(0) 推荐(0) 编辑