Advertisement
WeltEnSTurm

Untitled

Dec 19th, 2010
369
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.57 KB | None | 0 0
  1.  
  2. #include "stdafx.h"
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. struct warr_entry{
  8.     double var;
  9.     warr_entry* next;
  10.     warr_entry* prev;
  11. };
  12.  
  13. class warr{
  14. public:
  15.     warr(){
  16.         m_head.next=NULL;
  17.         m_head.prev=NULL;
  18.         m_head.var=0;
  19.     }
  20.  
  21.     warr_entry get(int idx){
  22.         warr_entry *c=&m_head;
  23.         int i=0;
  24.         while(c->next!=NULL&&i!=idx){
  25.             c=c->next;
  26.             i++;
  27.         }
  28.         return *c;
  29.     }
  30.  
  31.     int get(warr_entry e){
  32.         warr_entry *c=&m_head;
  33.         int i=0;
  34.         while(c->next!=NULL&&c!=&e){
  35.             i++;
  36.             c=c->next;
  37.         }
  38.         return i;
  39.     }
  40.  
  41.     warr_entry& operator[] (const int nIndex){
  42.         return get(nIndex);
  43.     };
  44.  
  45.     void add(double v){
  46.         warr_entry *a=new warr_entry;
  47.         a->next=NULL;
  48.         warr_entry *l=last();
  49.         l->var=v;
  50.         l->next=a;
  51.         a->prev=a;
  52.     };
  53.  
  54.     int rem(int idx){
  55.         warr_entry *c = &m_head;
  56.         int i=0;
  57.         while(c->next!=NULL && i!=idx){
  58.             i++;
  59.             c=c->next;
  60.         }
  61.         c->prev->next=c->next;
  62.         delete &c;
  63.         return i;
  64.     };
  65.  
  66.     warr_entry first(){
  67.         return m_head;
  68.     }
  69.  
  70.     warr_entry *last(){
  71.         warr_entry *c=&m_head;
  72.         while(c->next!=NULL){
  73.             c=c->next;
  74.         }
  75.         return c;
  76.     };
  77.  
  78.     int size(){
  79.         int cs=0;
  80.         warr_entry *c=&m_head;
  81.         while(c->next != NULL){
  82.             cs++;
  83.             c=c->next;
  84.         }
  85.         return cs;
  86.     };
  87.  
  88.     void printall(){
  89.         warr_entry* e=&m_head;
  90.         while(e->next != NULL){
  91.             cout<<e->var<<endl;
  92.             e=e->next;
  93.         }
  94.     }
  95.  
  96. private:
  97.     warr_entry m_head;
  98. };
  99.  
  100. int main(int argc, _TCHAR* argv[])
  101. {
  102.     warr w;
  103.     w.add(10293);
  104.     w.add(212);
  105.     w.add(1.1021);
  106.     cout<<w.get(1).var<<endl;
  107.     cout<<w[1].var<<endl;
  108.     w.printall();
  109.     cout<<w.size()<<endl;
  110.     system("PAUSE");
  111.     return 0;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement