
数据结构之栈
文章平均质量分 77
王小文Ben
这个作者很懒,什么都没留下…
展开
-
进制转换
/所用的栈模板请参阅《顺序栈模板》一、十进制转二进制: ElemType c; SqStack s; int len,i,sum=0; InitStack(&s); printf("请输入二进制数,输入#符号表示结束!\n"); scanf("%c",&c); while (c!='#') { Push(&s,c); scanf("%c",&c);原创 2013-12-28 15:27:43 · 772 阅读 · 0 评论 -
顺序栈模板
为了自己学习,每天都要更一点数据结构知识,嘿嘿!之后的知识都用这种模板来完成,所以。。。#include#include #include #define STACK_INIT_SIZE 20#define STACKINCREMENT 10typedef char ElemType;typedef struct{ ElemType * base; Ele原创 2013-12-28 15:25:48 · 607 阅读 · 0 评论 -
表达数求值(逆波兰表达式)
学到这里是我学编程以来最欢乐的一个内容,因为每次看到有关逆波兰表达式的内容都会看到一句至理名言——“想要出名,不但要有牛逼的成就,名字还要起的朗朗上口!”。哈哈,可怜的Jan Lukasiewicz,是不是应该念做简.卢卡斯维克斯?管他妈的! 逆波兰表达式不懂的去度娘之!上代码:#include #include #include #include #原创 2013-12-28 15:31:10 · 908 阅读 · 0 评论 -
终极的表达式求值
之前的两篇文章将表达式求值做了个分解动作。1、将中缀表达式转换为后缀表达式(逆波兰表达式)。2、利用逆波兰表达式求出最终的结果。表达式求值历来有几个比较难搞的问题:1、带括号的优先级问题(转换为逆波兰表达式完美解决此问题)。2、大于10的数字做表达式计算。3、带小数点的问题。将中缀表达式转换为后缀表达式后,括号问题就已经迎刃而解。2、3两个问题利用点小技原创 2013-12-29 22:09:10 · 743 阅读 · 0 评论 -
表达式求值(中缀表达式转换为后缀表达式)
上一篇文章是后缀表达式求值,由于后缀表达式不是我们人类能接受的求值表达式,so本文为中缀表达式转换为后缀表达式的方法。然后再结合上一篇逆波兰表达式,我们就可以利用中缀表达式求值啦!!!!本文的代码依然可以计算带小数点,大于10的数字的表达式!写到这里突然想起来,没有考虑负数问题!那么这个内容就交给读者朋友吧!由于本人也是菜鸟,所以里面有两问题解决的能闹心的,代码中有详细的注释。原创 2013-12-28 16:45:37 · 1050 阅读 · 0 评论 -
汉诺塔问题
汉诺塔问题在编程这个领域内可以算是一个老掉牙的问题了,但是它是一个很好的学习例子,作为以为编程的菜鸟,我也必须要搞定它才是!据传说,当64层汉诺塔从a塔挪到c塔时,那将是世界末日!!!关于汉诺塔的玩法不会的去找度娘!言归正传,回归问题。 递归,当然要用递归!递归是把最复杂的问题转换成最简单的情况,汉诺塔游戏中什么是最简单的情况?当然是塔层只有1的情况了?所以递归的终止原创 2013-12-31 02:37:18 · 1112 阅读 · 0 评论 -
利用递归求八皇后问题
八皇后问题是学习数据结构里很经典的一个问题,在8*8的棋盘里,摆放8个皇后,使其两两之间不会形成威胁!计算目的:1、遍历并输出每一种结果;2、求得有多少种解法。利用回溯算法计算把皇后问题是比较简单的! 我利用递归,就是为了求解!就是为了更深刻的了解递归!进入代码,我会将代码做详细的注释,方便需要的同学去学习:由main开始:#includ原创 2014-01-03 02:46:31 · 1305 阅读 · 2 评论