摘要:
问题:设计一个队列能够在O(1)时间内取得队列的最大值。分析:这个问题和设计一个在O(1)时间内取最大值的堆栈看似比较相似,但实现难度要比最大值的堆栈困难一些,开始想模仿最大值堆栈的思想来设计取最大值的堆栈都失败了。实际上这个问题可以拆分成两个问题:1)设计一个在O(1)时间内取最大值的堆栈;2)如何使用堆栈来实现一个队列;如果这两个问题解决了,O(1)时间取最大值的队列也就解决了,这体现了把一个困难的问题,分解为几个比较简单的问题,分步骤处理的思想。 首先看第一个问题:设计一个在O(1)时间内取最大值的堆栈是比较容易的,我们可以使用两个堆栈来保存数据,其中一个保存正常的数据,另一个保存最大. 阅读全文
摘要:
首先,对于文章中给出的bisearch()程序有一点疑问,对于strcmp()函数调用的字符指针都不判断是否为空。显然,这个保证留给了该函数的调用者,本身也没什么问题。但是,我觉得在实际代码中,起码应该使用assert()来测试一下为好。但是考虑到字符指针数组其实在运行时可能经常变化,其实风险还是有的。其实这样的东西严格来讲的确不能算错误,但是却是真真正正的风险。好了,言归正传。给定一个单链表,只给出头指针h:1、如何判断是否存在环?2、如何知道环的长度?3、如何找出环的连接点在哪里?4、带环链表的长度是多少?解法:1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始, 阅读全文
摘要:
题目:假设有一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(非第一个节点, 也非最后一个节点)。请将该节点从单链表中删除。解答:典型的“狸猫换太子”, 若要删除该节点,正常情况下,应该要知道该节点的前面节点的指针,但是由于单链表中没有头结点,所以无法追溯到该节点前面的那个节点,因此,这里采用了“移花接木”的方法。设该节点为B,下一个节点为C。那么,首先将B节点的内容替换为C节点的内容,然后,将C节点删除,这样就达到了我们的目的。代码如下:pcur->next = pnext->next;pcur->data = pnext->date;delete pnex 阅读全文
摘要:
在31年前(1979年),一名刚获得博士学位的研究员,为了开发一个软件项目发明了一门新编程语言,该研究员名为Bjarne Stroustrup,该门语言则命名为——C with classes,四年后改称为C++。C++是一门通用编程语言,支持多种编程范式,包括过程式、面向对象(object-oriented programming, OP)、泛型(generic programming, GP),后来为泛型而设计的模版,被发现及证明是图灵完备的,因此使C++亦可支持模版元编程范式(template metaprogramming, TMP)。C++继承了C的特色,既为高级语言,又含低级语言功 阅读全文
摘要:
保存变量到一个文件,可以是部分变量或者全部变量save('back.mat','a');%把a变量保存在文件中加载文件中的变量可以是部分或者全部变量load('matlab.mat','a') 向字符串打印数据a=1;name=sprintf('cqi%02d',a)c中是sprintf(name,'cqi%d',a);x=1:5;y1=sin(x);y2=log(x);y3=log2(x);y4=2.^x;H=plot(x,y1,x,y2,x,y3,x,y4);set(H,{'color& 阅读全文
摘要:
三维绘图1 三维绘图指令类 别指 令说 明网状图mesh, ezmesh绘制立体网状图meshc, ezmeshc绘制带有等高线的网状图meshz绘制带有“围裙”的网状图曲面图surf, ezsurf立体曲面图surfc, ezsurfc绘制带有等高线的曲面图surfl绘制带有光源的曲面图曲线图plot3, ezplot3绘制立体曲线图底层函数surfaceSurf函数用到的底层指令line3plot3函数用到的底层指令等高线contour3绘制等高线水流效果waterfall在x方向或y方向产生水流效果影像表示pcolor在二维平面中以颜色表示曲面的高度2 基本XYZ立体绘图命令l mesh 阅读全文
摘要:
matlab legend 使用用Matlab画图时,有时候需要对各种图标进行标注,例如,用“+”代表A的运动情况,“*”代表B的运动情况。legend函数的基本用法是LEGEND(string1,string2,string3, ...)分别将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标。例如:plot(x,sin(x),'.b',x,cos(x),'+r')legend('sin','cos')这样可以把"."标识为'sin',把"+"标 阅读全文
摘要:
算法竞赛-入门经典-作者刘汝佳.doc第1部分 语 言 篇第1章 程序设计入门学习目标þ 熟悉C语言程序的编译和运行þ 学会编程计算并输出常见的算术表达式的结果þ 掌握整数和浮点数的含义和输出方法þ 掌握数学函数的使用方法þ 初步了解变量的含义þ 掌握整数和浮点数变量的声明方法þ 掌握整数和浮点数变量的读入方法þ 掌握变量交换的三变量法þ 理解算法竞赛中的程序三步曲:输入、计算、输出þ 记住算法竞赛的目标及其对程序的要求计算机速度快,很适合做计算和逻辑判断工作。本章首先介绍顺序结构程序设计,其基 阅读全文
摘要:
一、cpp文件的建立1、 打开vc6.0程序在开始菜单的程序选单中有Microsoft Visual Studio 6.0图标,选择其中的Microsoft Visual C++ 6.0即可运行(或者双击windows桌面上VC6.0快捷方式即可运行)。2、 新建cpp文件单击vc6.0界面菜单栏中的文件选项(快捷方式为Alt+F)然后直接单击“新建”选项以上操作也可同时按下 Ctrl + N 完成接下来,在弹出窗口中单击文件选项卡然后单击选择 “C++ Soutce File”,再点下确定(或直接双击 “C++ Soutce File”也可)如要直接输入文件名则在文件名输入框中输入文件名和选 阅读全文
摘要:
电信基础知识题库 (以下题目可以按填空、判断或简答方式出题,也可以经过变化成为选择题) Asynchronous Transfer Mode(ATM) 异步传输模式(ATM) ATM是一项数据传输技术, 有可能革新计算机网络建立的方法。是一种面向连接的快速分组交换技术,建立在异步时分复用基础上,并使用固定长度的信元,支持包括数据、语音、图象在内的各种业务的传送。 ATM技术特点: ATM真正具有电路交换和分组交换的双重性: 二、业务/产品适用范围 金融,证券公司,保险公司,制造业,交通运输,政府机构等。 三、业务/产品应用方案与成功案例 通过ATM技术可完成企业总部与各办事处及公司分部... 阅读全文