上一页 1 2 3 4 5 6 ··· 9 下一页
摘要: 1,谈谈你对面向对象的认识面向对象,将数据结构和操作这些数据的方法结合到了一起。行成对象,现实生活中有很多对象,如汽车,他有颜色,大小等特性,它有移动,鸣笛等行为,将存储在结构中的数据与功能组合成一个新单元,就叫做对象。2,一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程。想法:26个字母的bit,然后与操作看是不是为1。3 线程和进程区别和联系。什么是“线程安全”进程,资源分配的最小单位,线程是执行的基本单位,一个进程可包含多个线程,线程共享进程的地址空间,一个线程挂了,会影响其他线程,安全性比进程差 阅读全文
posted @ 2012-10-08 20:54 foreverlearn 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 面试题目:输入两颗二叉树A,B,判断B是不是A的子结构;#include <iostream>#include <stack>using namespace std;typedef struct BinaryTreeNode{ int value; BinaryTreeNode * lchild; BinaryTreeNode *rchild;}BinaryTreeNode;typedef BinaryTreeNode * BiTree;void CreateBiTreeByLevel(BiTree &t,int Array[],int i,int len){ 阅读全文
posted @ 2012-09-08 12:07 foreverlearn 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目:实现一个函数,输出该数二进制表示中1的个数由于要考虑到负数等问题对数n移位,不能解决负数问题:解法1 flag = 1,向左移动flagint coutNumber1fun1(int n) { unsigned int flag = 1; int cout = 0; while(flag) { if(n&flag)cout++; flag = flag << 1; } return cout; }解法2:利用:把一个整数减去1再和原来的整数做位运算,得到的结果相当于把整数的二进制表示中,最右边的一个1变成0int coutNumber1fun2(int n) { i. 阅读全文
posted @ 2012-09-06 20:23 foreverlearn 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 1:设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。既 abcd1234,右移k=4位,变为1234abcd#include<iostream> using namespace std; //--------------------------------------- //方式1,每次右移动1位,时间复杂度为O(m*N) void RightShift(char *s,int k) { int len = strlen(s); int m = k%len; while (m--) { char tempc = s[len - 阅读全文
posted @ 2012-05-03 10:12 foreverlearn 阅读(203) 评论(0) 推荐(0) 编辑
摘要: //值传递 void swap1(int p,int q) { int temp; temp = p; p = q; q = temp; } //指针传递(地址传递) void swap2(int *p,int *q)//不正确 { int *temp; //定义了指针,但并没有为指针指向的内容分配内存 *temp = *p;// 拷贝p指的内存到temp指向的内存,但temp指向的内存并没有分配 *p = *q; *q = *temp; } void swap3(int *p,int *q)//不正确,改变形参的值,没有改变实参的值原因http://blog.csdn.n... 阅读全文
posted @ 2012-05-01 20:19 foreverlearn 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 1:“声明的形式和使用的形式相似” 例如:一个int类型的指针数组被声明为 int *p[3],并以*p[i]这样的表达式引用或者使用指针所指向的int数据#include <iostream>#include <stdlib.h>using namespace std;int main(){ char (*j)[20];//j是一个指向数组的指针,数组内有20个char元素 j = (char (*) [20])malloc(20); for (int i = 0; i<20; i++) { *((char *)j+i) = (char)((int)'a 阅读全文
posted @ 2012-04-26 22:11 foreverlearn 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 1:怎样样在main函数未开始之前,执行一个函数呢?利用全局变量+类的构造函数 1 #include <iostream> 2 using namespace std; 3 class A{ 4 public: 5 A(int m); 6 }; 7 A::A(int m) 8 { 9 cout<<"constructor fun"<<m<<endl;10 }11 A a(10);//先调用构造函数12 int main()13 {14 cout<<"mian"<<endl;15 sy 阅读全文
posted @ 2012-04-24 20:16 foreverlearn 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 1,void GetMemory(char *p, int num){ p = (char *)malloc(sizeof(char) * num);}void Test(void){ char *str = NULL; GetMemory(str, 100); // str 仍然为 NULL strcpy(str, "hello"); // 运行错误} 原因:编译器总是要为函数的每个参数制作临时副本,指针参数p的副本是_p,编译器使_p = p。如果函数体内的程序修改了_p的内容,就导致参数p的内容作相应的修改。这就是指针可以用作输出参数的原因。在本例中,_p申请了新的内 阅读全文
posted @ 2012-04-23 22:35 foreverlearn 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 1:函数原型void * memcpy ( void * destination, const void * source, size_t num );函数作用参考:http://www.cplusplus.com/reference/clibrary/cstring/memcpy/Copy block of memoryCopies the values ofnumbytes from the location pointed bysourcedirectly to the memory block pointed bydestination.The underlying type of t 阅读全文
posted @ 2012-04-23 13:34 foreverlearn 阅读(945) 评论(1) 推荐(0) 编辑
摘要: 已知二叉树的中序序列和前序序列(或后序)求解树文章作者:Slyar文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。今天数据结构课讲树的存储和遍历,老师讲的很简单,也没什么代码要发...唯一看到一个比较重要的东西,总结一下算法好了。这种题一般有二种形式,共同点是都已知中序序列。如果没有中序序列,是无法唯一确定一棵树的,证明略。一、已知二叉树的前序序列和中序序列,求解树。1、确定树的根节点。树根是当前树中所有元素在前序遍历中最先出现的元素。2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边 阅读全文
posted @ 2012-04-19 22:46 foreverlearn 阅读(481) 评论(0) 推荐(2) 编辑
上一页 1 2 3 4 5 6 ··· 9 下一页