Advertisement
3axap_010

Stack.h

Mar 18th, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.67 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include <windows.h>
  4. #include <stdlib.h>
  5.  
  6. struct PROC_INFO
  7. {
  8.     STARTUPINFO si;
  9.     PROCESS_INFORMATION pi;
  10.     HANDLE hTerminateEvent;
  11. };
  12.  
  13. struct stack
  14. {
  15.     PROC_INFO* pr_in;
  16.     stack* next;
  17. };
  18.  
  19. int empty(stack* head)
  20. {
  21.     return head == NULL;
  22. }
  23.  
  24. void push(stack** head, PROC_INFO* pr_in)
  25. {
  26.     stack* s = (stack*)malloc(sizeof(stack));
  27.     s->pr_in = pr_in;
  28.     s->next = NULL;
  29.  
  30.     if (empty(*head))
  31.     {
  32.         *head = s;
  33.         return;
  34.     }
  35.    
  36.     s->next = *head;
  37.     *head = s;
  38. }
  39.  
  40. PROC_INFO* pop(stack** head)
  41. {
  42.     if (empty(*head))
  43.     {
  44.         return NULL;
  45.     }
  46.  
  47.     stack* temp = *head;
  48.     PROC_INFO* pr_in = temp->pr_in;
  49.  
  50.     *head = temp->next;
  51.     free(temp);
  52.  
  53.     return pr_in;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement