栈的操作
来源:互联网 发布:smtp tls 端口 编辑:程序博客网 时间:2024/06/08 02:11
include
include
define TRUE 1
define FALSE 0
typedef struct node
{
int data;
struct node * next;
}Stack;
Stack * initStack()
{
Stack top =(Stack)malloc(sizeof(Stack));
if(NULL!=top)
{
top->data=0;
top->next=NULL;
}
return top;
}
/* 入栈操作 */
Stack* pushStack(Stack* pHead,int Data)
{
Stack* pNewNode = (Stack*)malloc(sizeof(Stack));
if (NULL == pNewNode)
{
return NULL;
}
pNewNode->data =Data;
pNewNode->next = pHead;
pHead = pNewNode;return pHead;
}
/* 出栈操作 */
Stack* popStack(Stack* pHead, int* outData)
{
/* 如果栈为空 */
if (NULL == pHead->next)
{
return NULL;
}
/* 把数据传出去 */*outData = pHead->data;Stack* pTemp = pHead;pHead = pHead->next;/* 把头删除 */delete pTemp;return pHead;
}
/* 遍历栈的操作 */
int visitStack(Stack* pHead)
{
Stack* pTemp = pHead;
/* 判断栈是否为空 */if (NULL == pHead->next){ printf("This stack is empty\n"); return -1;}while (NULL != pTemp->next){ printf("%d ", pTemp->data); pTemp = pTemp->next;}printf("\n");
}
int main()
{
Stack* pHead = initStack();
int n=-1;
printf("请输入数字以-1结束!\n"); while(scanf("%d",&n)&&n!=-1) /* 入栈 */pHead = pushStack(pHead, n);printf("入栈顺序!"); visitStack(pHead); pHead = popStack(pHead, &n); printf("出栈顺序!"); visitStack(pHead);
}
- 用栈操作实现队列的操作
- 栈的操作
- 栈的相关操作
- 顺序栈的操作
- 顺序栈的操作
- 顺序栈的操作
- 数据结构--栈的操作
- 栈的简单操作
- 栈的基本操作
- 链栈的操作
- 栈的相关操作
- 栈的基本操作
- 栈的操作
- 栈 的基本操作。
- 栈的简单操作
- 栈的相关操作
- 栈的基本操作
- 栈的基本操作
- Rebuilding Roads (树形dp+背包)
- jQuery的on()方法的两种用法(委托给父元素进行事件监听代理)
- bzoj2438: [中山市选2011]杀人游戏(强联通)
- Android打包错误Expected resource of type id...
- activeMQ启动一闪而过
- 栈的操作
- Chrome插件控制视频播放速度(爱奇艺、优酷)
- HDFS中的file与block块之间的对应关系举例
- node 触发监听事件
- 波特率与晶振
- 大数据学习系列之一 ----- Hadoop环境搭建(单机)
- Dungeon Game
- css左右摆动动画
- ROS学习笔记2 消息发布与订阅