#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct Node_
{
int data;
struct Node_ *pNext;
}Node,*pNode;
typedef struct stack_
{
pNode pTop; //栈顶指针
pNode pBottom;//栈底指针 //需要用一个空节点来占位底部
}Stack;
void push_stack(Stack* stack, int x);
int main(void)
{
Stack* pStack = new Stack();
//最底层的无用占位node
Node* bottomNode = new Node();
bottomNode->data = -1;
bottomNode->pNext = NULL;
pStack->pBottom = bottomNode;
pStack->pTop = pStack->pBottom;
printf("add stack value = 1 \n");
push_stack(pStack,1);
printf("add stack value = 2 \n");
push_stack(pStack,2);
printf("add stack value = 3 \n");
push_stack(pStack,3);
printf("traverse \n");
Node * p = pStack->pTop;
while(p->pNext != NULL){
printf("value %d\n", p->data);
p = p->pNext;
}
printf("value %d\n", p->data);
system("pause");
return 0;
}
//入栈:
void push_stack(Stack* stack, int x)
{
Node* n = new Node();
n ->data = x;
n ->pNext = stack->pTop;
stack->pTop = n;
}
#include<malloc.h>
#include<stdlib.h>
typedef struct Node_
{
int data;
struct Node_ *pNext;
}Node,*pNode;
typedef struct stack_
{
pNode pTop; //栈顶指针
pNode pBottom;//栈底指针 //需要用一个空节点来占位底部
}Stack;
void push_stack(Stack* stack, int x);
int main(void)
{
Stack* pStack = new Stack();
//最底层的无用占位node
Node* bottomNode = new Node();
bottomNode->data = -1;
bottomNode->pNext = NULL;
pStack->pBottom = bottomNode;
pStack->pTop = pStack->pBottom;
printf("add stack value = 1 \n");
push_stack(pStack,1);
printf("add stack value = 2 \n");
push_stack(pStack,2);
printf("add stack value = 3 \n");
push_stack(pStack,3);
printf("traverse \n");
Node * p = pStack->pTop;
while(p->pNext != NULL){
printf("value %d\n", p->data);
p = p->pNext;
}
printf("value %d\n", p->data);
system("pause");
return 0;
}
//入栈:
void push_stack(Stack* stack, int x)
{
Node* n = new Node();
n ->data = x;
n ->pNext = stack->pTop;
stack->pTop = n;
}