程序员面试宝典(四)
午后小夕
趁着青春,尽情挥洒,加油
展开
-
windows内存管理的几种方式的优缺点
windows内存管理的几种方式的优缺点原创 2015-08-08 21:11:31 · 530 阅读 · 0 评论 -
指针数组和数组指针
原创 2015-07-23 22:05:16 · 316 阅读 · 0 评论 -
判断两颗棵二叉树是否相等
int CompTree(TreeNode *tree1, TreeNode *tree2){bool isTree1Null = (tree1 == NULL);bool isTree2Null = (tree2 == NULL);//其中一个为NULL,而另一个不为NULL,肯定不相等if (isTree1Null != isTree2Null)return 1;/原创 2015-08-03 22:26:39 · 2032 阅读 · 0 评论 -
用两个栈实现一个队列
用两个栈实现一个队列的功能解析: 假设两个栈A和B,且都为空。 可以认为栈A提供入队列的功能,栈B提供出队列的功能。 入队列:入栈A、 出队列: 如果栈B不为空,直接弹出栈B的数据。 如果栈B为空,则依次弹出栈A的数据,放入栈B中,再弹出栈B的数据。 代码如下:#include#i原创 2015-08-03 21:07:44 · 352 阅读 · 0 评论 -
队列的入队和出队操作
#include#include#include#includeusing namespace std;typedef struct student{int data;struct student *next;}node;typedef struct linkqueue{node *first, *rear;}queue;//队列原创 2015-08-03 20:12:51 · 5743 阅读 · 0 评论 -
指针和引用的区别
原创 2015-07-22 22:16:40 · 536 阅读 · 0 评论 -
内联函数和宏定义的区别
内联函数和宏定义的差别是什么原创 2015-07-22 22:01:28 · 451 阅读 · 0 评论 -
const 修饰指针的4种情况
函数头后加const,表示的是常成员函数,常成员函数理解为是一个“只读”函数,它既不能更改数据成员的值,也不能调用那些能引起数据成员值变化的成员函数,只能调用常成员函数。原创 2015-07-22 15:05:25 · 611 阅读 · 0 评论 -
循环链表
#include#include#include#define ERROR 0typedef struct LNode{int data;struct LNode *link;}LNode, *LinkList;void JOSEPHUS(int n, int k, int m)//n为总人数,k为第一个开始报数的人,//m为出列者喊到的数{原创 2015-08-02 22:09:29 · 473 阅读 · 0 评论 -
双链表删除/插入节点
//双链表删除节点dnode *del(dnode *head, int num){dnode *p1, *p2;p1 = head;while (num != p1->data && p1->next != NULL){p1 = p1->next;}if (num == p1->data){if (p1 == head){head = head原创 2015-08-02 21:37:58 · 695 阅读 · 0 评论 -
const 与#define的区别
const与#define相比有什么不同。原创 2015-07-22 15:23:54 · 311 阅读 · 0 评论 -
双链表的建立
创建双链表#include#include#include#includeusing namespace std;typedef struct student{int data;struct student *next;struct student *pre;} dnode;dnode *create(){dnode *hea原创 2015-08-02 21:12:18 · 669 阅读 · 0 评论 -
单链表删除节点
单链表删除节点node *del(node *head, int num){node *p1, *p2;p1 = head;while (num != p1->data && p1->next != NULL){p2 = p1;p1 = p1->next;}if (num == p1->data){if (p1 == head)hea原创 2015-07-31 21:28:41 · 1130 阅读 · 0 评论 -
第5章面试2--专家打分
int CallScore(int N, int *Score, int *Judge_type){int ret = 0, n = 0, m = 0;double sum1 = 0, sum2 = 0;if (N && Score && Judge_type){for (int i = 0; i {switch (Judge_type[i]){原创 2015-07-21 20:29:43 · 472 阅读 · 0 评论 -
博弈论--两兄弟分钱
原创 2015-08-13 14:27:14 · 3124 阅读 · 0 评论 -
编程实现单链表的排序
node *sort(node *head){node *p, *p2, *p3;int n;int temp;n = length(head);if (head == NULL || head->next == NULL)return head;p = head;for (int j = 1; j {p = head;for (int i = 0;原创 2015-07-31 21:38:48 · 688 阅读 · 0 评论 -
关键字static的作用
原创 2015-07-31 20:12:31 · 307 阅读 · 0 评论 -
heap和stack的差别
原创 2015-08-03 21:25:02 · 909 阅读 · 0 评论 -
函数指针
1.写出函数指针,函数返回指针,const指针,指向const的指针,指向const的const指针。void (*f)()void * f()int * constconst int *const int * const 下面的数据声明都代表什么?原创 2015-07-23 21:53:54 · 489 阅读 · 0 评论 -
进程和线程的差别
进程和线程的差别原创 2015-08-08 20:07:53 · 329 阅读 · 0 评论 -
转换字符串格式为原来的字符+该字符连续出现的个数
题目:转换字符串格式为原来的字符+该字符连续出现的个数,例如:字符串1233422222 转化为1121324125#include#includeusing namespace std;int main(){cout string str;char reschar[50]; reschar[0] = '\0';getline(cin, str);原创 2015-08-06 22:17:41 · 608 阅读 · 0 评论 -
求一个字符串中出现相同且长度最长的字符串
题目:输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置。 例如:“yyabcdabjcabceg",输出结果应该为abc 和3.#include#includeusing namespace std;int main(){string str, tep;cout cin >> str;for (原创 2015-08-06 21:09:58 · 1006 阅读 · 0 评论 -
返回主串中子串及其后的所有字符
题目: 写一个函数模拟c++中的strstr函数。该函数的返回值是主串中字符子串的位置以后的所有字符。请不要使用任何c程序已有的函数来完成。#includeusing namespace std;const char* strstr1(const char* string, const char* strCharSet){for (int i =原创 2015-08-06 21:32:13 · 633 阅读 · 0 评论 -
求一个字符串中连续出现次数最多的子串
总体思路是: 首先把给出的字符串按每次减少一个头部字符的方式存入vector中,然后开始在vector[0]中遍历以a开头的子串连续出现的次数。比较的方式为那vector[0]以a开头的一个字符和vector[1]内的比较 如果有 继续 没有 比较以ab开头的子串 。依次类推。//vector向量中的插入str的后缀数组:/*后缀数组如:abababc ,bababc原创 2015-08-06 20:42:40 · 586 阅读 · 0 评论 -
希尔排序
希尔排序 #include#includeusingnamespace std;void ShellSort(int *data,intleft,intright){ int len =right -left + 1; int d = len; while (d > 1) { d = (d原创 2015-08-05 22:04:59 · 404 阅读 · 0 评论 -
字符串和整数之间的相互转化
1.整数转化为字符串,可以采用加’0’,再逆序的办法,整数加‘0‘就会隐性转化为char类型的数#include#includeint main(void){ int num = 12345, j = 0, i = 0; char temp[7], str[7]; while (num) { temp[i] = num %原创 2015-08-05 22:03:26 · 1217 阅读 · 0 评论 -
this指针
下面this指针描述正确的是:原创 2015-07-24 19:09:03 · 576 阅读 · 0 评论 -
智能指针auto_ptr
下面智能指针auto_ptr使用正确的是:class Object{public: virtual ~Object(){};}原创 2015-07-24 18:49:49 · 366 阅读 · 0 评论 -
迷途指针和空指针,malloc /new区别
空指针和迷途指针的区别 当delete一个指针的时候,实际上仅是让编译器释放内存,但指针本身依然存在。这时它就是一个迷途指针。原创 2015-07-24 18:29:35 · 631 阅读 · 0 评论 -
冒泡排序
分析:void BubbleSort(SeqList R){//R(1...n)是带排序的文件,采用自下向上扫描,对R做冒泡排序int i, j;bool exchange; //交换标志for (i = 1; i {exchange =0;//本趟排序开始前,交换标志为假for (j = n - 1; j >= i; j--){if (R[j原创 2015-08-04 22:14:27 · 400 阅读 · 0 评论 -
快速排序
快速排序代码如下:原创 2015-08-04 21:37:20 · 327 阅读 · 0 评论 -
稳定排序和不稳定排序
排序的稳定性: 在带排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的;若具有相同关键字的记录之间的相对次序发生变化,则称这种排序方法是不稳定的。稳定的排序有:不稳定的排序有:原创 2015-08-04 21:17:24 · 915 阅读 · 0 评论 -
从一千万条短信中找出重复次数最多的前10条
题目: 有1千万条短信,有重复,以文本文件的形式保存,一行一条。请用5分钟时间,找出重复出现最多的前10条。struct TNode{BYTE* pText;//直接指向文件映射的内存地址DWORD dwCount;//计算器,记录此节点的相同短信数TNode* ChildNodes[256];//子节点数据,由于一个字母的ASCII值不可能超过原创 2015-08-04 20:53:54 · 5096 阅读 · 0 评论 -
如何设计魔方
题目:如何设计魔方(6面)的程序原创 2015-08-04 20:01:50 · 815 阅读 · 0 评论 -
给出a的定义 -- 指针 和 数组
原创 2015-07-23 22:10:09 · 564 阅读 · 0 评论 -
c++中dynamic_cast的用
c++中dynamic_cast的作用#include#include//Someone eles's code,eg.libraryclass IGlyph{virtual ~IGlyph(){}virtual std::string Text() = 0;virtual IIcon* Icon() = 0;//...};class IWidget原创 2015-07-31 19:36:51 · 488 阅读 · 0 评论 -
推理题
原创 2015-08-12 22:18:20 · 626 阅读 · 0 评论 -
估算鱼的条数
原创 2015-08-13 14:39:17 · 771 阅读 · 0 评论 -
死锁
定义: 指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时,称系统处于死锁状态或系统产生了死锁。原创 2015-08-08 19:53:36 · 455 阅读 · 0 评论 -
静态链接库和动态链接库的区别
静态链接库和动态链接库的区别原创 2015-08-08 20:27:14 · 314 阅读 · 0 评论