
c/c++编程
hxpjava1
毕业于武汉理工大学计算机系,12年开发架构经验,擅长java,k8s
展开
-
微软100题-第一题把二元查找树转变成排序的双向链表
package msimport scala.collection.mutable.ListBufferimport scala.util.control.Breaks/** * 1.把二元查找树转变成排序的双向链表(树) 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / / 6 14 / /原创 2017-01-04 14:36:58 · 561 阅读 · 0 评论 -
微软100题13题(输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针)
1python版本'''Created on 2017-1-18@author: admin第13题(链表):题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下: struct ListNode{ int m_nKey; ListNode* m_pNext;};'''from _overlapped imp原创 2017-01-18 10:15:26 · 775 阅读 · 0 评论 -
微软100题14题(在数组中查找两个数,使得它们的和正好是输入的那个数字)
1scala版本package ms/** * 第14题(数组):题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11 */object MicroSoft014 {原创 2017-01-18 11:39:41 · 1112 阅读 · 0 评论 -
微软100题15题(输入一颗二元查找树,将该树转换为它的镜像)
1scala版本package ms/** * 第15题(树):题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / / 6 10 // //5 7 9 11输出: 8 / / 10 6 // //11 9 7 5定义二元查找树的结点原创 2017-01-18 12:52:21 · 659 阅读 · 0 评论 -
微软100题第16题(输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印)
1python版本'''Created on 2017-1-18@author: admin'''from _overlapped import NULLclass BinaryTree: def __init__(self): self.root=self.Node(0) self.root.left=self.Node(1)原创 2017-01-18 14:14:45 · 892 阅读 · 0 评论 -
微软100题第18题(求出在这个圆圈中剩下的最后一个数字)
1scala版本package ms/** * 第18题(数组):题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。 */class Circle(){ var start=N原创 2017-01-18 15:41:21 · 539 阅读 · 0 评论 -
微软100题21题(要求将其中所有的可能组合列出来)
scala版本package msimport scala.collection.mutable.ListBuffer/** * 第21题(数组)2010年中兴面试题编程求解:输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来. */class ExtractSum{ var result:Li原创 2017-01-19 11:04:23 · 556 阅读 · 0 评论 -
微软100题第9题(判断整数序列是不是二元查找树的后序遍历结果)
1scala版本package ms/** * 第9题(树)判断整数序列是不是二元查找树的后序遍历结果题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 8 / / 6 10 / / /原创 2017-01-17 14:37:03 · 575 阅读 · 0 评论 -
c语言实现通用数据结构:通用映射(HashMap)
这是在通用链表的基础上实现的映射,关于链表的实现参见:http://blog.csdn.net/swwlqw/article/details/22498833。注意映射中只存储了key和value的指针,没有储存实际的数据。对于新的key类型来说,需要自定义HashCode函数和equal函数。在HashSet的实现中给出了几个常见的hashCode函数和equal函数转载 2017-06-12 11:41:10 · 5149 阅读 · 0 评论 -
c语言实现通用数据结构(一):通用链表
忽然想起来,大概在两年之前学习C语言的时候,曾经用C语言写过一些通用的数据结构。主要也就实现了链表、队列、椎、HashSet,还有HashMap。当时只是知道标准的C语言中没有这方面的类库,后来才知道有很多第三方的类似这样的类库。废话不多说,先把代码粘过来。下面实现的是通用链表,注意链表中只存储了指针,没有储存实际的数据。头文件[cpp] view plain co转载 2017-06-12 11:59:19 · 1449 阅读 · 0 评论 -
微软100题第11题(求二叉树中节点的最大距离)
1scala版本package msimport scala.util.Random/** * 第11题(树)求二叉树中节点的最大距离...如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。 * */class RandomBinaryTree{ var r原创 2017-01-17 17:10:51 · 772 阅读 · 0 评论 -
C指针
第一章 指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让 我们分别说明。 先声明几个指针放着做例子: 例一: (1)int *ptr; (2)char *ptr; (3)int **ptr;转载 2017-01-12 16:15:53 · 420 阅读 · 1 评论 -
C语言结构体(Struct)
前面的教程中我们讲解了数组(Array),它是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:struct 结构体名{转载 2017-01-14 15:38:08 · 606 阅读 · 1 评论 -
C++ STL
以下内容来源网上 经过整合而成一、一般介绍 STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++转载 2017-02-05 16:24:57 · 363 阅读 · 0 评论 -
微软100题-第2题设计包含min函数的栈
package msimport scala.collection.mutable.ArrayBuffer/** * 2.设计包含min函数的栈(栈)定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。 */class CustomStack[T<%Ordered[T]]{ var data:ArrayBu原创 2017-01-04 17:30:33 · 446 阅读 · 0 评论 -
微软100题第三题(求子数组的最大和)
1python版'''Created on 2017-1-16@author: admin3.求子数组的最大和(数组)题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10,原创 2017-01-16 14:38:19 · 632 阅读 · 0 评论 -
微软100题第4题(在二元树中找出和为某一值的所有路径)
1scala版package msimport scala.collection.mutable.ListBufferimport scala.collection.mutable.ListBuffer/** * 4.在二元树中找出和为某一值的所有路径(树)题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的原创 2017-01-16 17:38:57 · 636 阅读 · 0 评论 -
微软100题第7题(判断俩个链表是否相交)
1python版'''Created on 2017-1-17@author: admin第7题(链表)微软亚院之编程判断俩个链表是否相交给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。为了简化问题,我们假设俩个链表均不带环。问题扩展:1.如果链表可能有环列?2.如果需要求出俩个链表相交的第一个节点列?'''from _overlapped impor原创 2017-01-17 11:06:29 · 526 阅读 · 0 评论 -
C语言文件读写基本操作DEMO
#include #include int main(){ FILE *infile; FILE *outfile; //FILE *otherfile; char input; //char buffer[10]; int i=0; infile=fopen("d:\\infile.txt","r+"); /* r+ 以可读写方式打开文件,该文件必须存在。*/ /*a+转载 2017-01-12 09:24:49 · 903 阅读 · 0 评论 -
C语言中的多线程编程
C语言中的多线程编程#include#define NUM 6int main(){ void print_msg(char*); print_msg("hello,"); print_msg("world!");}void print_msg(char* m){ int i; for(i=0;i转载 2017-01-12 10:21:47 · 22094 阅读 · 2 评论 -
详解Windows下Eclipse CDT 配置C-C++ 编译环境
开发环境:Eclipse3.2、CDT3.1、MinGW5.11、Eclipse及CDT的安装到Eclipse的官方网站http://www.eclipse.org上下载Eclipse。安装CDT。CDT的全称是C/C++ DevelopmentTools,是使Eclipse能够支持C/C++开发的插件,保健康。进入CDT的官方网站,http://www/eclipse.org/c转载 2017-01-12 13:25:22 · 453 阅读 · 0 评论 -
c语言实现通用数据结构:通用集合(HashSet)
这是在通用链表的基础上实现的集合,关于链表的实现参见:http://blog.csdn.net/swwlqw/article/details/22498833。注意集合中只存储了指针,没有储存实际的数据。对于新的数据类型来说,需要自定义HashCode函数和equal函数。下面还给出了几个常见的hashCode函数和equal函数。(1)HashCode函数头文件转载 2017-06-12 12:01:31 · 5546 阅读 · 0 评论