斜阳雨陌

再不做乞求命运怜惜的弱者,一定要做主宰命运的王。

循环队列与链队列的优劣势

循环队列与链队列的优劣势  循环队列、链队列分别什么时候用 对于循环队列与链队列的比较,可以从两方面来考虑: 从时间上,其实它们的基本操作都是常数时间,即都为0(1)的,不过循环队列是事先申请好空间,使用期间不释放,而对于链队列,每次申请和释放结点也会存在一些时间开销,如果入...

2016-07-30 20:41:09

阅读数:1605

评论数:0

循环队列的优点缺点

1、循环队列的优点:   可以有效的利用资源。用数组实现队列时,如果不移动,随着数据的不断读写,会出现假满队列的情况。即尾数组已满但头数组还是空的;循环队列也是一种数组,只是它在逻辑上把数组的头和尾相连,形成循环队列,当数组尾满的时候,要判断数组头是否为空,不为空继续存放数据。   2、循环队...

2016-07-30 20:36:45

阅读数:1450

评论数:0

循环队列初识

生活中有很多队列的影子,比如打饭排队,买火车票排队问题等,可以说与时间相关的问题,一般都会涉及到队列问题;从生活中,可以抽象出队列的概念,队列就是一个能够实现“先进先出”的存储结构。队列分为链式队列和静态队列;静态队列一般用数组来实现,但此时的队列必须是循环队列,否则会造成巨大的内存浪费;链式队列...

2016-07-29 21:10:30

阅读数:243

评论数:0

栈帧初识

一、 什么是栈帧?     什么是栈帧,相信很多从事C编程的童鞋还是没有搞明白,首先引用百度百科的经典解释:“栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。”。     实际上,可以简单理解为:栈帧就是存储在用户栈上的(当然内核栈同样适用)每一次函数调用涉及的相关...

2016-07-29 20:24:40

阅读数:142

评论数:0

函数递归与栈的关系

首先通过反汇编语言,我们来了解一下最简单的递归函数与栈之间的关系。 如何获得反汇编语言,在visual studio 2008中,在debug环境下,在debug/windows/disassembly中可以查看反汇编之后的语言。现在我们看一下阶乘n!的实现 其C语言实现代码如下 ...

2016-07-29 20:15:59

阅读数:1281

评论数:0

经典汉诺塔算法

算法:当只有一个盘子的时候,只需要从将A塔上的一个盘子移到C塔上。             当A塔上有两个盘子是,先将A塔上的1号盘子(编号从上到下)移动到B塔上,再将A塔上的2号盘子移动的C塔上,最后将B塔上的小盘子移动到C塔上。             当A塔上有3个盘子时,先将A...

2016-07-28 21:51:30

阅读数:270

评论数:0

中缀表达式与前缀表达式的转换

中缀表达式:运算符放在两个运算对象中间,如:(2+1)*3; 后缀表达式:不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则,如:2 1 + 3 *; 前缀表达式:同后缀表达式一样,不包含括号,运算符放在两个运算对象的前面,如:* +...

2016-07-27 21:08:43

阅读数:1379

评论数:0

中缀表达式转换成前缀表达式和后缀表达式的极其简单方法

35,15,+,80,70,-,*,20,/               //后缀表达方式 (((35+15)*(80-70))/20)=25           //中缀表达方式   /,*,+,35,15,-,80,70, 20             //前缀表达方式  人...

2016-07-23 21:48:36

阅读数:156

评论数:0

将中缀表达式转化为后缀表达式

将中缀表达式转化为后缀表达式  也是使用栈这个数据结构 我们把平时所用的标准四则运算表达式,即“9+(3-1)*3+10/2"叫做中缀表达式。因为所有的运算符号都在两数字的中间,现在我们的问题就是中缀到后缀的转化。 中缀表达式“9+(3-1)*3+10/2”转化为后...

2016-07-23 21:32:57

阅读数:174

评论数:0

C语言中的单引号和双引号的区别

C语言中的单引号和双引号的区别 首先肯定地说,二者是有区别的,不是说用谁都一样。 1、实质区别,代表的含义不同 'A'代表的是一个整数,而且这个整数对应的是编译器所采用的字符集中的字符序列对应的数值。所以'A'跟ASCII中的65意义是相同的。 1 # inclu...

2016-07-22 21:26:55

阅读数:413

评论数:0

将十进制数转换为任意进制数

问题:将十进制数转换为任意进制数(2,8,16...).   算法:假如N为输入的数,n为要转换为的进制,若要将十进制231转换为8进制数,过程如下; N                        N/n                      N%n 231    ...

2016-07-22 20:40:40

阅读数:2792

评论数:0

scanf()函数

scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 scanf函数的一般形式 scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。scanf函数...

2016-07-22 20:34:38

阅读数:221

评论数:0

指针的指针的理解以及应用

彻底搞定C指针---指向指针的指针一.回顾指针概念: 今天我们又要学习一个叫做指向另一指针地址的指针。让我们先回顾一下指针的概念吧! 当我们程序如下申明变量: short int i; char a; short int * pi; 程序会在内存某地址空间上为各变量开辟空间,如...

2016-07-21 21:46:36

阅读数:189

评论数:0

栈的顺序存储结构和链式存储结构

栈(stack)很多人都不会太陌生,说到栈大家一定会想到一句话:后进先出(Last In First Out)。这句话就是栈的一个本质特点,其实栈就是一个只能在一端进行插入、删除的特殊的线性表。栈有栈底和栈顶,元素从栈顶出。         下面首先说说栈的顺序存储结构。即用一个StackSiz...

2016-07-21 20:05:21

阅读数:388

评论数:0

10进制与其他进制的转换

10进制转换成其他的都是除以要转换成的那个数,也就是说转换成二进制的就除以2,转换成八进制的就除以8,转换成十六进制的就除以16,然后倒取余数。具体例题如下 10---2:把20转换成二进制 20/2=10..........余数为0 10/2=5...........余数为0 5/2=2.......

2016-07-21 19:36:39

阅读数:220

评论数:0

C语言地址相减

C语言中,地址值可能以两种形式存在: 1 以指针类型出现: C语言中,指针类型值的本质为地址。 C语言规定,不同类型的指针,不可以做相减操作,只有同类才可以进行减操作。比如同样是char*,或者同样是int*等。注意int *和int**,即一维指针和二维指针属于不同类型。 同类型相减的计...

2016-07-20 20:44:55

阅读数:418

评论数:0

时间复杂度计算杂记

算法时间复杂度的计算 [整理] 时间复杂度算法  基本的计算步骤   时间复杂度的定义     一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(...

2016-07-18 21:41:21

阅读数:126

评论数:0

时间复杂度的一些计算规则

一些规则(引自:时间复杂度计算 ) 1) 加法规则 T(n,m) = T1(n) + T2(n) = O (max ( f(n),g(m) )   2) 乘法规则 T(n,m) = T1(n) * T2(m) = O (f(n) * g(m))   3) 一个特例(问题规模为常...

2016-07-18 21:36:53

阅读数:309

评论数:0

如何计算时间复杂度

一、概念时间复杂度是总运算次数表达式中受n的变化影响最大的那一项(不含系数) 比如:一般总运算次数表达式类似于这样: a*2^n+b*n^3+c*n^2+d*n*lg(n)+e*n+f a ! =0时,时间复杂度就是O(2^n); a=0,bO(n^3); a,b=0,cO(n^2)依此类推eg:...

2016-07-18 21:32:00

阅读数:165

评论数:0

数组和链表的简介

数据结构之链表与数组(-)——数组和链表的简介       众所周知,在计算机中要对给定的数据集进行若干处理,首要任务是把数据集的一部分(当数据量非常大时,可能只能一部分一部分地读取数据到内存中来处理)或全部存储到内存中,然后再对内存中的数据进行各种处理。          例...

2016-07-18 21:20:52

阅读数:148

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭