Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define StackEntry int
- typedef struct stacknode {
- StackEntry entry;
- struct stacknode *next;
- }StackNode;
- typedef struct stack {
- StackNode *top;
- }Stack;
- void CreateStack (Stack *ps) {
- ps->top = NULL;
- }
- void push (StackEntry e, Stack *ps) {
- StackNode *pn = (StackNode*) malloc(sizeof(StackNode));
- pn->entry = e;
- pn->next = ps->top;
- ps->top = pn;
- }
- void pop (StackEntry *pe, Stack *ps) {
- *pe = ps->top->entry;
- StackNode *pn = ps->top;
- ps->top = ps->top->next;
- free(pn);
- /*
- clear the StackNode (data) to the operating system,
- and the pointer still pointing to the same address
- */
- }
- void StackTop (StackEntry *pe, Stack *ps) {
- *pe = ps->top->entry;
- }
- int StackEmpty (Stack *ps) {
- return ps->top == NULL;
- }
- int StackFull (Stack *ps) {
- return 0;
- }
- int main() {
- // freopen("/home/hamoudi/Coding/DataStructures/LinkedStack/input.in", "r", stdin);
- Stack s;
- CreateStack(&s);
- StackEntry e;
- push(e, &s);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement