Advertisement
Hamoudi30

Stack Data Structure Linked based

Nov 10th, 2021
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.04 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define StackEntry int
  4. typedef struct stacknode {
  5.   StackEntry entry;
  6.   struct stacknode *next;
  7. }StackNode;
  8. typedef struct stack {
  9.   StackNode *top;
  10. }Stack;
  11.  
  12. void CreateStack (Stack *ps) {
  13.   ps->top = NULL;
  14. }
  15.  
  16. void push (StackEntry e, Stack *ps) {
  17.   StackNode *pn = (StackNode*) malloc(sizeof(StackNode));
  18.   pn->entry = e;
  19.   pn->next = ps->top;
  20.   ps->top = pn;
  21. }
  22.  
  23. void pop (StackEntry *pe, Stack *ps) {
  24.   *pe = ps->top->entry;
  25.   StackNode *pn = ps->top;
  26.   ps->top = ps->top->next;
  27.   free(pn);
  28.   /*
  29.    clear the StackNode (data) to the operating system,
  30.    and the pointer still pointing to the same address
  31.    */
  32. }
  33.  
  34. void StackTop (StackEntry *pe, Stack *ps) {
  35.   *pe = ps->top->entry;
  36. }
  37.  
  38. int StackEmpty (Stack *ps) {
  39.   return ps->top == NULL;
  40. }
  41.  
  42. int StackFull (Stack *ps) {
  43.   return 0;
  44. }
  45.  
  46. int main() {
  47.  
  48. //  freopen("/home/hamoudi/Coding/DataStructures/LinkedStack/input.in", "r", stdin);
  49.  
  50.   Stack s;
  51.  
  52.   CreateStack(&s);
  53.  
  54.   StackEntry e;
  55.  
  56.   push(e, &s);
  57.  
  58.   return 0;
  59. }
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement