![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
tdap
wu
展开
-
表达式求值——栈模拟
表达式求值,学数据结构时的经典无问题。以前把严蔚敏那本数据结构书上的例子都打了一遍,后来硬盘坏了就丢了,还有点小心痛,今天学妹让我帮她写段,于是花了大半个小时就有了这一段,首先先构思:对于一个表达式字符串呢,机器是不认识的,所以我们要把字符串解析出来,依此的把数字放在数字栈中,符号放在符号栈中,由于老师要求不能用stack 于是就有了我自己定义的栈(只定义了计算中需要的几个函数):原创 2015-04-29 19:31:04 · 608 阅读 · 0 评论 -
平衡二叉树
平衡二叉树的实现原创 2015-04-30 20:44:38 · 884 阅读 · 0 评论 -
堆栈 ——堆排序
最经看树比较多,总结一下堆的算法吧,堆得定义:(个人觉得和二叉排序树很像,只是堆可以看做是一颗完全二叉树) n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质: ki=号 k(i)相当于二叉树的非叶子结点,K(2i)则是左子节点,k(2i+1)是右子节点;若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结原创 2015-05-02 16:28:04 · 1091 阅读 · 0 评论 -
通讯录——数据结构课设
帮同学写了n多课设,觉得蛮简单,没怎么在意,这又花20min帮人写了一个,决定发在博客上,以后有谁要类似的就直接给个链接, ;-) 机智的窝 任务要求: 题目描述:通讯录的基本属性包括编号、姓名、性别、住址、联系电话等。要求实现最基本的功能模块如下: (1)通讯录的建立;该模块主要完成将数据存储工作。记录可以从文本文件中读入,也可以从键盘逐条输入记原创 2015-06-10 09:23:16 · 3618 阅读 · 3 评论 -
最小生成树
最小生成树原创 2015-04-30 20:57:39 · 850 阅读 · 0 评论 -
ATM取款机模拟——数据结构课设
今天帮人写的第二篇课设 , ;-) 机智的窝 要求:大概说一下吧,就是要创建一个用户(初始化一账户),模拟ATM的业务(取款,100的整数倍,改密 码,查余额,等等,各种简单繁琐的操作 ;-) ) 直接贴代码吧:#include #include #include #include #include using namespace原创 2015-06-12 09:31:29 · 2545 阅读 · 0 评论 -
c++11新特性 auto的使用
C语言里面其实就已经有auto关键字了,只不过很少用到当我们在C或者以前的C++中,auto关键字在自动存储类中声明变量,即具有局部生存期的变量,基本上可以被无视。比如这个局部变量: int a = 100; auto int a = 100;并没有什么区别,但是在C++11标准里面auto已经有了新的含义,可以从声明的初始化表达式中可以推导出变量的类型。auto a = 100;原创 2015-08-25 16:31:20 · 894 阅读 · 0 评论 -
矩阵求逆
这几天在学习数组图像的相关知识,这才发现线性代数的重要性啊,线性代数虽然难不难,但是有的知识过了就忘了,这不要用到矩阵的逆矩阵进行运算了,赶紧拿书恶补一通, 不用我多说,矩阵的逆拿来干嘛,怎么定义啥的,都自己百度解决,这里给出我的代码,方便以后直接运用:#include #include #define MAX 20 #define E 0.000000001 u原创 2015-07-23 15:49:24 · 1399 阅读 · 0 评论 -
c/c++区别
总容易把c和c++当成是一回事,其实并不是,c是一种结构化的的语言,重点在算法和数据结构, c程序设计首先考虑的是如何通过一个过程对输入 进行运算处理得到输出,而对于c++首先考虑的构 造一个对象模型,让该模型能契合对应的问题域,这样就可以通过获取对象的状态信息得到输出或 实现过程的控制, 在c++中要调用c编译器编译的函数的在函数前加关键字 extrn “C”,虽然c原创 2015-10-07 09:34:19 · 406 阅读 · 0 评论 -
c++虚函数
c++虚函数:1.纯虚函数:#include class A{public: virtual void f()=0;};class B:public A{private: int a;public: B(int i):a(i) {}; virtual void f(){ std::cout<<"classB:"<<a<<std::endl;原创 2015-12-27 21:38:23 · 572 阅读 · 0 评论 -
c++11新特性 lambda
C++11 新增了很多特性,lambda 表达式是其中之一,将介绍 C++11 的 lambda 表达式。很多语言都提供了 lambda 表达式,如 Python,Java 8。lambda 表达式可以方便地构造匿名函数,如果你的代码里面存在大量的小函数,而这些函数一般只被调用一次,那么不妨将他们重构成 lambda 表达式。C++11 的 lambda 表达式规范如下:原创 2015-12-24 21:19:36 · 410 阅读 · 0 评论 -
va_start()va_end()和vsnprintf()函数应用
#include #include #include void fun(int a,...){ va_list pp; int n=1; va_start(pp,a); do { printf("第 %d 个参数 =%d\n",n++,a); a=va_arg(pp,int); } while (a!原创 2016-01-13 21:10:19 · 1749 阅读 · 0 评论 -
大整数乘法
大整数乘法原创 2015-05-02 19:44:44 · 1344 阅读 · 0 评论 -
hash的运用
问题为知道一个数组A[n],和一数字k,存在数字A[i] +A[j]= k;求出这样的数字的对数,如A{1,2,3,4,5,4,1,6,7} k=8 求得的结果为 5 (1+7, 2+6, 3+5, 4 +4, 1+7);首先经好想的方法就是暴力,枚举任意两个数字的和 与k比较int ans=0;for(int i=0;i<n-1;i++) for(int j=i原创 2015-04-26 21:19:41 · 418 阅读 · 0 评论 -
dp模拟
Problem Description艺术协会有N个画家,他们决定按照如下规则一起工作:每个画家有且仅有一种颜色的颜料,每个画家的颜料都是不同颜色的。这里我们假定画家1使用颜色1,画家2使用颜色2……以此类推。每一幅画包含所有N种颜色,把第j种颜色画到第i幅画上需要消耗t(ij)个单位的时间。作画的顺序也是很重要的,所以画家们的工作顺序满足如下要求:·每幅画原创 2015-04-27 20:27:40 · 618 阅读 · 0 评论 -
C++ 排序函数 sort()的用法
在编写c++程序时排序是非常常见的,一般情况下大家往往会直接写个选择或冒泡排序,其实这并不是一个非常明智的选择,效率低下(时间复杂度为n*n)容易出错我们可以选择stl中的快速排序 sort(),效率高且方便,首先看如何用sort()实现排序功能:下面我们将对一个数组用sort函数对其排序:排序函数 sort()的用法" title="C++ 排序函数 so原创 2015-04-27 20:17:42 · 1346 阅读 · 0 评论 -
博弈
Problem DescriptionAlice和Bob正在玩一个游戏。他们有N个球,然后轮流开始从这些球里取,每个人每次可以取最多K个,最少1个,如果一个人不能取了,那么就输了。如果Alice先取,那么谁一定能赢。Input每行用空格分隔的两个数K、N,都是int范围内的正整数。Output输出必胜者的姓名。Sample Input3原创 2015-04-27 20:20:56 · 411 阅读 · 0 评论 -
递归算法
递归是计算机,数学,运筹学等领域经常使用到的最强大解决问题的的方法之一,起主要实思想是把问题划分成一个活多个规模更小的子问题,然后用同样的方法解决规模更小的子问题。ps:那些规模更小之问题应该与原问题保持同一类型,这样才可以用相同的方法来解决。 设计递归的步骤:(1):找到问题的初始条件(递归出口),当规模小到一定程度时该问题就变得很简单,然后直接求解;(2):设计一个解决办法原创 2014-03-07 21:09:02 · 814 阅读 · 0 评论 -
广搜
不多说,看描述Problem Description“连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但原创 2015-04-27 20:22:24 · 3429 阅读 · 0 评论 -
单链表模板
大你链表模板不多说,直接的贴代码:#includeusing namespace std;///////////////////////线性表的定义部分///////////////////////////////////节点信息//每个节点的数据域可以是任意类型的值templatestruct TpNode{T date;TpN原创 2015-04-27 20:19:25 · 694 阅读 · 0 评论 -
linux makefile详细解说
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比转载 2015-04-30 20:36:19 · 737 阅读 · 0 评论 -
链表节点操作的总结
前几天看到一个比较老的面试题,想了想还是总结一下记录下来吧,一:题目大意是:给两个链表,找出是否相交,节点的定义假设如下:struct pNode{ int p_mvalue; pNode* p_next;};已知的链表的头结点 Head1, Head2首先说第一种方法,很容易想到,就是两个链表分别从头到尾跑一遍,再看两个节点的指针是否相同,简单直接,但是原创 2015-04-19 21:50:47 · 691 阅读 · 0 评论 -
稀疏矩阵顺序存储的运算方法
这里说说稀疏矩阵用三元组顺序存储的的运算方法:首先是三元组的数据结构类型: typedef struct{ int i,j;//矩阵行标,列标 int e;//元素值 }Triple; typedef struct{ Triple date[maxn +1]原创 2015-04-27 20:24:40 · 1217 阅读 · 0 评论 -
分治的运用---最近点对
问题很简单,就是在平面上有n个点,找出其中的一对点使得他们的距离是所有点对中最小的,我们定义点的数据类型为:那么要怎么求这一对原创 2015-04-28 10:44:01 · 500 阅读 · 0 评论 -
::在C++中是什么意思
::是运算符中等级最高的,它分为三种:1)global scope(全局作用域符),用法(::name)int a;void test (){ int a = ::a;//用全局变量a,给本地变量a赋值}2)class scope(类作用域符),用法(class::name)class A{ public: int test();}int A::tes原创 2016-04-09 15:32:19 · 1864 阅读 · 0 评论