实现一个栈的数据结构,使其具有以下方法:压栈、弹栈、取栈顶元素、判断栈是否为空以及获取栈中元素个数。
方法一:数组实现在采用数组来实现栈的时候,栈空间是一段连续的空间。实现思路如图9-5所示。
(图9-5 数组实现栈)
从图9-5中可以看出,可以把数组的首元素当作栈底,同时记录栈中元素的个数size,假设数组首地址为arr,压栈的操作其实是把待压栈的元素放到数组arr[size]中,然后执行size+操作。同理,弹栈操作其实是取数组arr[size-1]元素,然后执行size-操作。根据这个原理可以非常容易实现栈,示例代码如下:
方法一:数组实现在采用数组来实现栈的时候,栈空间是一段连续的空间。实现思路如图9-5所示。
(图9-5 数组实现栈)
从图9-5中可以看出,可以把数组的首元素当作栈底,同时记录栈中元素的个数size,假设数组首地址为arr,压栈的操作其实是把待压栈的元素放到数组arr[size]中,然后执行size+操作。同理,弹栈操作其实是取数组arr[size-1]元素,然后执行size-操作。根据这个原理可以非常容易实现栈,示例代码如下: