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