《第7章数据结构问题.ppt》由会员分享,可在线阅读,更多相关《第7章数据结构问题.ppt(15页珍藏版)》请在三一办公上搜索。
1、零基础学算法,第7章:数据结构问题,课程安排,7.1 约瑟夫环7.2 大整数四则运算7.3 进制转换7.4 括号匹配7.5 中序式转后序式7.6 停车场管理7.7 迷宫求解7.8 LZW压缩的实现,7.1 约瑟夫环,7.2 大整数四则运算,7.2.1 使用数组进行大整数运算,设计大整数的存储结构输入/输出大整数比较大整数的大小进行加减乘除运算,7.2 大整数四则运算,7.2.1 使用数组进行大整数运算,加法运算,7.2 大整数四则运算,7.2.1 使用数组进行大整数运算,乘法运算,7.2 大整数四则运算,7.2.1 使用数组进行大整数运算,除法运算,7.2 大整数四则运算,7.2.2 使用链表
2、进行大整数运算,设计大整数的链表结构输入/输出大整数进行加减运算,7.3 进制转换,任意进制转换为十进制 对于任意进制转换为十进制的操作,只需要将该进制的数据按权展开,然后相加即可。,十进制转换为任意进制 十进制数转换为其他任意进制时,采用反复除以某进制的基数,取其余数作为对应进制的数据,并且最先得到的是该进制的低位,最后得到的才是该进制的高位。,7.4 括号匹配,要检查某一表达式的括号是否匹配,可从左向右扫描表达式中的每一个字符,若字符为左、右括号,则进行匹配操作,可分两种情况:若是左括号,则将其位置序号进入栈中。若是右括号,则从栈中弹出一个左括号与之匹配。如果栈已为空,表示多了一个右括号。
3、,7.5 中序式转后序多,1.后序表达式,中序表达式:(a+b)*(c+d),转为后序表达式:ab+cd+*,2.中序式转 后序式的过程 使用栈来进行转换,逐个取出中序表达式中的字符,若是运算数,则直接将其输出,若是运算符,则需根据运算符的优先级进行判断:若是左括号,将其入栈;若是“+、-、*、/”运算符,用当前运算符与栈顶运算符比较,若栈顶运算符优先级大,则弹出栈顶运算符。接着再将当前运算符与栈顶运算符进行比较,这样不断循环,直到栈顶运算符的优先级比当前运算符相等或低时为止。接着将当前运算符入栈。若是右括号,则查看栈顶是否为左括号,7.6 停车场管理,该题的具体描述是:设停车场内只有一个可停
4、放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若停车场内已停满n辆汽车(即车位已满),则后来的汽车只能停在门外的过道上等候,一旦停车场内有车开走,则排在过道上的第一辆车即可开入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入车场的车辆必须先退出车场为它让路,待该辆车开出大门外后,为它让路的车辆再按原次序进入车场(在这里假设汽车不能从便道上开走)。每辆车按其在停车场停留的时间付费,车辆停在停车场内时需要计时收费,而停在过道上不收费。,7.7 迷宫求解,7.8 LZW压缩的实现,压缩字符串“One One One”的过程:,性格决定命运,专注成就人生,