‫在本视频中, 您将了解如何在C-sharp中使用坦克, 如何将数据添加到堆栈,
‫如何编辑堆栈中的数据等｡
‫首先, 我们来看看如何定义栈, 我们可以像定义任何集合一样定义栈｡
‫这里有stack关键字, 为了使用text, 你需要添加下面的命名空间｡
‫所以使用泛型集合, 你可以看到堆栈是泛型集合,
‫这意味着它们有泛型集合的优点和缺点｡
‫所以我们需要定义要堆栈的类型｡
‫在这个例子中, 我会把一堆整型值堆起来, 我称之为Stack.
‫你可以称之为我的堆栈, 或者随便你怎么说,
‫但基本上这就是我现在要添加数据的堆栈.
‫若要将值加入至堆栈, 您需要使用这个推入方法, 因此会在堆栈顶端插入物件｡
‫所以在我们的例子中, 对象将是整型的｡
‫所以你可以说push然后输入你想添加到其中的项, 比如说I.
‫这会将1推入堆栈｡
‫现在, 如果您想查看堆栈顶层的内容, 我们可以查看一下｡
‫因此, 这将返回堆栈顶部的元素, 而不删除它｡
‫这是堆积峰
‫在我们的例子中, 这个方法会给予出这个, 因为这个栈中没有其他东西.
‫基本上, 这是堆栈顶部的项｡
‫所以如果我们在这里添加更多的项, 那么最后一个被添加到堆栈的项将是使用右行语句显示的项｡
‫让真实的快速地看一下, 看看我们得到了什么｡
‫你可以看到栈顶的值是1｡
‫现在, 如果我们在这里加上另一个值, 比如, 1, 3, 3, 7,
‫我们再运行一次, 那么堆栈顶部的项将是1, 3, 3, 7｡
‫现在让我们使用push来向堆栈中添加一堆项, 然后查看它们, 因为这会告诉你,
‫每次查看时, 你只能看到最新添加到堆栈中的项.
‫所以栈顶的值是1, 然后我们把2压进去.
‫堆栈的顶部值为2, 依此类推｡
‫现在如果你想从栈中移除一个项, 那么我们可以使用stack. pop.
‫这将删除该项目, 弹出操作将返回该项目｡
‫所以在这里它会返回一个整数, 所以我们可以把这个整数存储在这里, 比如, 我的栈项中｡
‫然后我可以举例｡
‫这个在这里打过｡
‫我们称之为单跳项｡
‫现在让我们再运行一次｡
‫你会看到这三个会被弹出｡
‫现在, 如果我们再次达到顶峰｡
‫那么, 让我们再挑一次｡
‫在我们弹出项目后, 您会看到它将是, 事实上, 两个, 而不是三个了｡
‫所以我们的项是3, 栈顶的值是2.
‫所以你可以用pop来存储这个项, 然后你可以使用它, 但是它不会再在堆栈里了.
‫这就是从堆栈中移除项目的方法｡
‫现在你必须非常小心, 因为如果你试图在栈顶做这个, 在栈顶没有任何项的地方,
‫这会导致错误.
‫所以我们来真实的的说一下｡
‫您可以看到这里什么也没有发生, 我们的应用程序实际上正在崩溃｡
‫因此, 我们在这里得到一个无效操作异常, 因为我们不能从空堆栈中弹出｡
‫没什么可跳的｡
‫所以先检查一下总是很有用的｡
‫所以只有当堆栈计数｡
‫所以物品数量大于零的时候我就想执行这个｡
‫这是你在使用堆栈时需要考虑的问题,
‫你总是先检查是否有东西要弹出, 如果你想从堆栈中弹出或删除一个项目.
‫例如, 我们可以创建一个宽循环, 它将从堆栈中删除项目, 直到没有项目剩余｡
‫所以请继续, 自己试试这个｡
‫创建一个小while循环｡
‫那就和我说的完全一样了｡
‫所以基本上我们会清除所有的项, 然后在它从堆栈中跳转到所有项后停止执行｡
‫好吧, 我会的
‫我希望你试过了｡
‫基本上, 我会过牌｡
‫步数是否大于零？
‫如果是这种情况, 则从堆栈中弹出该项｡
‫此外, 我们可以直接在控制台上显示它, 同时我们还将显示剩余的物品数量｡
‫让我们真实的运行这个程序, 看看它是如何去掉这三个的｡
‫然后只剩下两个项目, 然后它删除两个项目, 一个项目, 然后它删除一个,
‫没有项目留下｡
‫所以我们可以看到, 我们从栈中弹出的元素是以相反的方式｡
‫我们把它们推进去, 这样就反过来了｡
‫所以这意味着我们在这里使用了leaf的概念, 后进先出,
‫这基本上意味着最后进入堆栈的元素将是第一个退出堆栈的元素｡
‫让我们来看看数组的反转｡
‫现在你可以看到堆栈是如何工作的, 你可以如何删除项目或添加项目等等｡
‫让我们考虑一下这个数组｡
‫这是一个包含一堆整数的数组.
‫所以现在我想把它们颠倒过来｡
‫因此, 让我们继续定义一个堆栈来处理这一问题｡
‫首先, 我们需要定义一个新的堆栈｡
‫实际上你可以自己试试｡
‫所以试着自己构建这个小应用程序, 其中的数字将被颠倒｡
‫所以这个数字数组中的数字应该颠倒过来, 并且应该以相反的顺序显示｡
‫因此, 您不需要将它们存储在单独的数组中｡
‫您只需在控制台中以相反的顺序显示它们｡
‫好吧, 我会的
‫首先, 我要显示数字数组中的元素.
‫所以这里光线中的数字是我们使用了一个for each循环来显示这些数字, 我们也用这种方法把它们加到了堆栈中｡
‫所以我们要把它们推到堆栈中｡
‫这是一种方法｡
‫当然, 你也可以用其他方法来做这件事, 但这就是我们的做法｡
‫我们先显示数字, 然后显示一个空格, 然后将该项目添加到堆栈中｡
‫这是我们创建的堆栈, 我们只需要确保将数字反向显示｡
‫因此, 在这里我使用控制台右行创建一个换行符｡
‫然后我把数字倒过来, 然后我们显示这些数字｡
‫因此, 我们检查堆栈中是否还有项, 只要计数大于零, 就检查堆栈中是否还有项｡
‫我们知道堆栈中仍有项目, 然后取出最后一个项目｡
‫我们把它存储为一个整数, 然后显示它｡
‫现在, 当然, 你可以跳过这一步, 直接这样做, 你弹出的项目了｡
‫这是另一种方法, 但现在你可以重复使用这个项目, 因为现在你有了这个数字, 尽管在我们的特殊情况下,
‫当然,
‫我们没有在任何地方使用数字, 但如果你想使用它, 你知道如何把它存储在某个地方｡
‫好吧, 我会的
‫现在, 让我们运行应用程序, 看看它是否能正常工作｡
‫你可以看到这是我们的数组, 这是它的反向版本｡
‫所以2674328｡
‫好吧, 我会的
‫这基本上就是你如何倒车和比赛｡
‫所以如果你得到了赋值, 反转一个数组, 现在你知道怎么做了.
‫所以文本是一个很棒的工具｡
‫当然, 文本在很多其他情况下也是非常有用的, 只要你想使用一个叶子或系统｡
‫后进先出系统有很多应用, 真实的中也会用到该系统｡
‫好吧, 我会的
‫这段视频到此为止｡
‫下一节我们会讨论Q.