Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 2nd, 2012  |  syntax: C  |  size: 2.30 KB  |  hits: 20  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include "aktienlist.h"
  2.  
  3. struct struct_stock
  4. {
  5.     Aktie *root, *head;
  6.  
  7.     /*
  8.      * legt ein element auf den stapel
  9.      */
  10.     void push(Aktie *stock)
  11.     {
  12.         if(root == NULL)
  13.             root = stock;
  14.         else
  15.             head -> next = stock;
  16.  
  17.         if(getNumberOfElements() > MAX_SIZE)
  18.             stockRemove(root);
  19.  
  20.         head = stock;
  21.     }
  22.  
  23.     /*
  24.      * nimmt einen wert vom stapel und gibt den speicher frei
  25.      * eine kopie der aktie wird zurueckgegeben
  26.      */
  27.     Aktie pop()
  28.     {
  29.         Aktie result = *head;
  30.         stockRemove(head);
  31.         return result;
  32.     }
  33.  
  34.     /*
  35.      * entfernt eine aktie vom stapel
  36.      */
  37.     void stockRemove(Aktie *stock)
  38.     {
  39.         if(stock == root)
  40.             root = (root -> next != NULL) ? root -> next : NULL;
  41.         else if(stock == head)
  42.             head = stockGetPrevious(head);
  43.         else
  44.             stockGetPrevious(stock) -> next = stock -> next;
  45.         delete(stock);
  46.     }
  47.  
  48.     /*
  49.      * gibt das element vor der uebergebenen aktie zurueck
  50.      */
  51.     Aktie *stockGetPrevious(Aktie *stock)
  52.     {
  53.         Aktie *stockpointer = root;
  54.         if(stock == root)
  55.             return NULL;
  56.         while(stockpointer -> next != stock)
  57.             stockpointer = stockpointer -> next;
  58.         return stockpointer;
  59.     }
  60.  
  61.     /*
  62.      * gibt die anzahl der elemente im stack zurueck
  63.      */
  64.     int getNumberOfElements()
  65.     {
  66.         Aktie *stockpointer = root;
  67.         int i = 0;
  68.  
  69.         while(stockpointer != NULL)
  70.         {
  71.             stockpointer = stockpointer -> next;
  72.             i++;
  73.         }
  74.         return i;
  75.     }
  76.  
  77.     /*
  78.      * TRUE: Stack ist leer
  79.      * FALSE: Stack ist voll
  80.      */
  81.     bool isEmpty()
  82.     {
  83.         return (getNumberOfElements() == 0);
  84.     }
  85.  
  86.     /*
  87.      * TRUE: Stack ist voll
  88.      * FALSE: Stack ist nicht voll
  89.      */
  90.     bool isFull()
  91.     {
  92.         return (getNumberOfElements() == MAX_SIZE);
  93.     }
  94.  
  95.     /*
  96.      * zeige alle aktien an
  97.      */
  98.     void printAll()
  99.     {
  100.         aktie *currentpointer = root;
  101.         int i = 1;
  102.  
  103.         while(currentpointer != NULL)
  104.         {
  105.             cout << i << ". Name: " << currentpointer -> name << ", Kurs: " << currentpointer -> kurs << endl;
  106.             i++;
  107.         }
  108.     }
  109. } Stack;