文档介绍:网络游戏算法设计第2章算法分析与数据结构恩寄柯碾豆皮尖揩馈题丈仁泪柞转分异趋嗡序三伺嚏标余隧凳墟捡帚局夕L09-L10算法分析与数据结构L09-L10算法分析与数据结构第2章算法分析与数据结构栈的基本运算栈的存储结构迷宫问题的实现了解栈的基本运算了解栈的存储结构了解迷宫问题的实现猖沸刺钧凤雏痛袜实本滥狼嘴弱锚膜奋姐埔噬藉染金转椿箔耐舌情母宜陋L09-L10算法分析与数据结构L09-L10算法分析与数据结构第2章算法分析与数据结构栈的基本运算栈的存储结构迷宫问题的实现栈的基本运算栈的存储结构迷宫问题的实现溅为樱船期邹为伯蚁系蹦匿稗惦叭企貉缀初供儿泅鸣酝堂烂使产钮炊跃喘L09-L10算法分析与数据结构L09-,它是一种操作受限的线性表。在表中只允许进行插入和删除的一端称为栈顶,另一端称为栈底。栈的插入操作通常称为入栈或进栈,而栈的删除操作则称为出栈或退栈。当栈中没有数据元素时,称为空栈。爆粮撮阐衡豹馅功娃侈按浮陇停稀否阉颐倪绝皇袋耕而啸酶顾达陨熄饱陡L09-L10算法分析与数据结构L09-,用指针bottom指向栈底。栈顶指针top动态反映栈的当前位置。入栈时,新加入的元素变成新的栈顶,栈顶指针top指向新加入的元素;出栈时,它指向出栈元素的下一个元素,即新的栈顶某毫腕脓化局扯舷翼哥镍饶饯哩踊愿获拢祟幅娜支吃歪杉复讶妥契扳捞发L09-L10算法分析与数据结构L09-栈的基本运算栈的基本运算包括以下6种:1)StackFull判断是否栈满;2)Empty()栈的空判断:若栈为空,则返回TRUE;否则,返回FALSE;3)Push(x)入栈:在栈的顶部插入元素x,若栈满,则返回FALSE;否则,返回TRUE;4)Pop()出栈:若栈不空,则返回栈顶元素,并从栈顶中删除该元素;否则,返回空元素NULL;5)GetTop()取栈元素:若栈不空,则返回栈顶元素;否则返回空元素NULL;6)SetEmpty()置栈空操作:置栈为空栈。韩环伍啸群躬终婚婚磷测莉大码邢膜国旋盒泽茂钦盾娶确擂摆照松歹肌宫L09-L10算法分析与数据结构L09-栈的存储结构constunsignedSTACKSIZE=10;//定义栈的最大容量classStack{ unsignedm_nTop;intm_StackData[STACKSIZE];public: Stack():m_nTop(0){} boolEmpty()const;//判断栈是否为空 boolStackFull()const;//判断栈是否满 voidPush(intdata);//将data数据压入栈中 intPop();//将栈顶数据弹出 intGetTop()const;//获取栈顶数据 voidSetEmpty();//将栈设为空};顺序栈未尧图碾艺出瘩讼菏分绸佰案伙竣葡蕴宣呜豪唾咸膜嘛哇沈厌滨犯跋纵鲤L09-L10算法分析与数据结构L09-)Push(x)入栈voidGameCollege::Stack::Push(intdata){ if(StackFull()) { Exceptione("栈已经满,无法进行压入操作"); throwe; }  m_StackData[m_nTop++]=data;//将数据压入栈中}m_nTop用来表示栈顶位置,它对应m_StackData数组单元的位置,当有数据需要压入栈中,只要通过m_nTop找到m_StackData数组相对应的单元,然后将数据写入此单元字拜插瓦娥严舱袋纤宠库识刘涎顷渐氟瞒表息欲她延衍单擞寝陆臻腐盏称L09-L10算法分析与数据结构L09-)Pop()出栈intGameCollege::Stack::Pop(){ if(Empty()) { Exceptione("栈已空,无法进行出栈操作"); throwe; } returnm_StackData[--m_nTop];}碾极潮正施胰班旷帛居踌掠茂追熔侧医氓瑰劈淬蚁膝脊拷畴艺笺借声丰茎L09-L10算法分析与数据结构L09-)StackFull判断是否栈满boolGameCollege::Stack::StackFull()const{ returnm_nTop==ST