栈程序演示
#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,*PSTACK;void init(PSTACK);
void push(PSTACK, int);
void traverse(PSTACK);
int main(void){STACK s; //等價于struct Stackinit(&s); //初始化push(&s,1); //壓棧 push(&s, 2);push(&s, 3);push(&s, 4);push(&s, 5);push(&s, 6);push(&s, 7);traverse(&s); //遍歷輸出while (true){ }return 0;
}//初始化造出一個空棧
void init(PSTACK ps) {ps->pTop = (PNODE)malloc(sizeof(NODE));if (NULL == ps->pTop) {printf("動態內存失敗");exit(-1);}else {ps->pBottom= ps->pTop;ps->pTop->pNext = NULL;}
}//壓棧
void push(PSTACK ps, int val) {//構造一個新的節點PNODE pNew=(PNODE)malloc(sizeof(NODE));pNew->data = val;pNew->pNext = ps->pTop;ps->pTop = pNew;
}//遍歷
void traverse(PSTACK ps) {PNODE p = ps->pTop;while (p != ps->pBottom) {printf("%d ",p->data);p = p->pNext;}printf("\n");return;
}
總結
- 上一篇: JAVA 基础之容器集合(Collect
- 下一篇: leetCode-删除排序数组中的重复项