随笔分类 - C++
摘要:1:C和C++的联系和区别? 答:C是一个结构化语言,它的重点在于算法和数据结构。对于语言本身而言,C是C++的子集。C程序的设计首先要考虑的是如何通过一个过程,对输入进行运算处理,得到输出。对于C++,首先要考虑的是如何构造一个对象模型,让这个模型能够配合对应的问题,这样就可以通过获取对象的状态信
阅读全文
posted @ 2017-10-07 14:51
一串字符串
摘要:1:二叉排序树,又称二叉树。其定义为:二叉排序树或者空树,或者是满足如下性质的二叉树。 (1)若它的左子树非空,则左子树上所有节点的值均小于根节点的值。 (2)若它的右子树非空,则右子树上所有节点的值均大于根节点的值。 (3)左、右子树本身又各是一颗二叉排序树。 上述性质简称二叉排序树性质(BST性
阅读全文
posted @ 2017-09-29 09:15
一串字符串
摘要:1:如何只使用stack实现queue呢?我们知道stack是先进后出的(FIFO),而queue是先进先出的(FIFO)。也就是说,stack进行了一次反向。如果进行两次反向,就能实现queue的功能,所以我们需要两个stack实现queue。 下面是具体思路。 假设有两个栈A和B,且都为空。可以
阅读全文
posted @ 2017-09-28 16:16
一串字符串
摘要:1:考点:编程实现下面的stack,并根据stack完成queue的操作 class MyStack { void push(data); void pop(&data); bool isEmpty(); } 代码如下: #include "stdafx.h" #include<malloc.h>
阅读全文
posted @ 2017-09-28 16:02
一串字符串
摘要:1:问题:一个顺序为1,2,3,4,5,6的栈,依次进入一个队列,然后进栈,顺序是什么? 答:首先一个顺序为1,2,3,4,5,6的栈,其意思是说进栈的顺序是1,2,3,4,5,6。按照栈的结构,1由于最先进栈,所以被放入栈底;6最后进栈,因此6位于栈顶。 然后进入一个队列。因为只能在栈顶进行出栈操
阅读全文
posted @ 2017-09-28 10:56
一串字符串
摘要:1:队列和栈是两种不同的数据结构。它们有以下区别: (1)操作的名称不同。队列的插入称为入队,队列的删除称为出队。栈的插入称为进栈,栈的删除称为出栈。 (2)可操作的方式不同。队列是在队尾入队,队头出队,即两边都可操作。而栈的进栈和出栈都是在栈顶进行的,无法对栈底直接进行操作。 (3)操作的方法不同
阅读全文
posted @ 2017-09-28 10:38
一串字符串
摘要:1:代码如下: #include "stdafx.h" #include<malloc.h> #include <iostream> #include <assert.h> using namespace std; typedef struct _Node { int data; struct _N
阅读全文
posted @ 2017-09-28 10:26
一串字符串
摘要:1:代码如下: // ConsoleApplication24.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<malloc.h> #include <iostream> #include <assert.h> using namespace
阅读全文
posted @ 2017-09-27 21:15
一串字符串
摘要:1:这里分为两种插入情况:一种是 插入位置在中间,另一种是插入位置在末尾。两种情况有一点不同:插入位置在中间时需要把p的原后继节点的前驱指针指向新插入的节点。 // ConsoleApplication24.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #i
阅读全文
posted @ 2017-09-27 20:48
一串字符串
摘要:1:代码如下: // ConsoleApplication24.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<malloc.h> #include <iostream> #include <assert.h> using namespace
阅读全文
posted @ 2017-09-27 17:48
一串字符串
摘要:1:双链表的建立,打印,代码如下: // ConsoleApplication24.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<malloc.h> #include <iostream> #include <assert.h> using
阅读全文
posted @ 2017-09-27 17:17
一串字符串
摘要:1:问题:n个人围成一个圈,每个人分别标注为1、2、...、n,要求从1号从1开始报数,报到k的人出圈,接着下一个人又从1开始报数,如此循环,直到只剩最后一个人时,该人即为胜利者。例如当n=10,k=4时,依次出列的人分别为4、8、2、7、3、10,9、1、6、5,则5号位置的人为胜利者。给定n个人
阅读全文
posted @ 2017-09-27 14:35
一串字符串
摘要:1:已知两个链表head1和head2各自有序,请把它们合并成一个链表,依然有序。使用非递归方法以及递归方法。 2:首先介绍非递归方法。局部引用方法:这种方法避免使用虚拟节点(dummy node),而是使用一个指向指针的指针,struct node** lastPtrRef,这个指针指向结果链表的
阅读全文
posted @ 2017-09-27 11:02
一串字符串
摘要:1:这里有一个比较简单的解法。设置两个指针p1、p2。每次循环p1向前走两步。直到p2碰到NULL指针或者两个指针相等时结束循环。如果两个指针相等,则说明存在环。代码如下: // ConsoleApplication15.cpp : 定义控制台应用程序的入口点。 // #include "stdaf
阅读全文
posted @ 2017-09-27 09:55
一串字符串
摘要:1:代码如下: // ConsoleApplication15.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <malloc.h> #include <iostream> using namespace std; typedef struc
阅读全文
posted @ 2017-09-27 09:18
一串字符串
摘要:1:这里使用一个只用一遍扫描的方法。描述如下: 假设mid指向当前已经扫描的子链表的中间元素,cur指向当前已扫描链表的末节点,那么继续扫描即移动cur到cur->next,这时只需判断一下应不应该移动mid到mid->next就行了。所以一遍扫描就能找到中间位置。代码如下: // ConsoleA
阅读全文
posted @ 2017-09-26 22:18
一串字符串
摘要:1:这是一个经常被问到的面试题,也是一份非常基础的问题。比如一个链表是这样的: 1->2->3->4->5通过逆置后成为5->4->3->2->1。 最容易想到的方法是遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用已经存储的指针往后面继续
阅读全文
posted @ 2017-09-26 18:09
一串字符串
摘要:1:代码如下: // ConsoleApplication15.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <malloc.h> #include <iostream> using namespace std; typedef struc
阅读全文
posted @ 2017-09-26 18:03
一串字符串
摘要:1:向链表中某个位置(第pos个节点)之后插入节点,这里分别插入到链表首部、插入到链表中间,以及链表尾端3个位置。代码如下: // ConsoleApplication15.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <malloc.h>
阅读全文
posted @ 2017-09-26 17:43
一串字符串
摘要:1:代码如下: // ConsoleApplication15.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <malloc.h> #include <iostream> using namespace std; typedef struc
阅读全文
posted @ 2017-09-26 17:03
一串字符串

浙公网安备 33010602011771号