⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gen_array.h

📁 This software was done in part for a textbook on AI I ve written called _The Basis of AI_ (tentative
💻 H
字号:
/*******************************************************************************++  LEDA 3.5+++  gen_array.h+++  Copyright (c) 1995, 1996, 1997  by  LEDA Software GmbH+  Postfach 151101, 66041 Saarbruecken, Germany+  All rights reserved.+ *******************************************************************************/#ifndef LEDA_GEN_ARRAY_H#define LEDA_GEN_ARRAY_H//------------------------------------------------------------------------------// arrays//------------------------------------------------------------------------------#include <LEDA/basic.h>class __exportC gen_array {friend class __exportC gen_array2;protected:	GenPtr* v;	GenPtr* last;	int sz;	        int Low;        int High;virtual int  el_type_id() const { return UNKNOWN_TYPE_ID; }virtual int  cmp(GenPtr, GenPtr)  const { return 0; }virtual void print_el(GenPtr&,ostream&) const {}virtual void read_el(GenPtr& ,istream&) const {}virtual void clear_entry(GenPtr&) const {}virtual void copy_entry(GenPtr&)  const {}virtual void init_entry(GenPtr&)  const {}  void gen_quick_sort(GenPtr*,GenPtr*,int);  void int_quick_sort(GenPtr*,GenPtr*,int);  void float_quick_sort(GenPtr*,GenPtr*,int);  void double_quick_sort(GenPtr*,GenPtr*,int);  void gen_insertion_sort(GenPtr*,GenPtr*,GenPtr*);  void int_insertion_sort(GenPtr*,GenPtr*,GenPtr*);  void double_insertion_sort(GenPtr*,GenPtr*,GenPtr*);  int  gen_binary_search(GenPtr);  int  int_binary_search(GenPtr);  int  double_binary_search(GenPtr);protected:  void sort(int l ,int h, int d,int spec);   int  binary_search(GenPtr,int spec);  void init();  void init(GenPtr,GenPtr);  void init(GenPtr,GenPtr,GenPtr);  void init(GenPtr,GenPtr,GenPtr,GenPtr);  void clear();public:         gen_array();         gen_array(int);         gen_array(int, int);         gen_array(const gen_array&);virtual ~gen_array() { if (v) delete[] v; }   gen_array& operator=(const gen_array&);   int     size() const     { return sz; }   int     low()  const     { return Low; }   int     high() const     { return High; }   GenPtr& elem(int i)       { return v[i]; }   GenPtr  elem(int i) const { return v[i]; }   GenPtr& entry(int i) const   { if (i<Low || i>High)     error_handler(2,"array::entry index out of range");     return v[i-Low];    }   GenPtr  inf(int i) const   { if (i<Low || i>High)     error_handler(2,"array::inf index out of range");     return v[i-Low];    }   void permute(int,int);   void permute()  { permute(Low,High); }   void print(ostream&,string, char space) const;       void print(ostream& out,char space=' ') const { print(out,"",space);  }   void print(string s, char space=' ')    const { print(cout,s,space);  }   void print(char space=' ')              const { print(cout,"",space); }      void read(istream&,string);     void read(istream& in)      { read(in,"");  }   void read(string s )        { read(cin,s);  }      void read()                 { read(cin,""); }   // Iteration   GenPtr first_item() const { return v; }   GenPtr last_item()  const { return last; }   GenPtr next_item(GenPtr p) const { return (p && p!=last) ? (GenPtr*)p+1 : 0;}   GenPtr pred_item(GenPtr p) const { return (p && p!=v)    ? (GenPtr*)p-1 : 0;}   GenPtr stl_next_item(GenPtr it) const { return (GenPtr*)it+1;   }   GenPtr stl_pred_item(GenPtr it) const { return (GenPtr*)it-1;   }};/*------------------------------------------------------------------------*//* 2 dimensional arrays                                                   *//*------------------------------------------------------------------------*/class __exportC gen_array2 {gen_array A;int Low1, Low2, High1, High2;virtual void clear_entry(GenPtr& x) const { x = 0; }virtual void copy_entry(GenPtr& x)  const { x = 0; }virtual void init_entry(GenPtr& x)  const { x = 0; }protected:void clear();gen_array* row(int i) const { return (gen_array*)A.inf(i); }void copy_row(gen_array*, gen_array*) const;public:void init(int,int,int,int);int low1()  const { return Low1; }int low2()  const { return Low2; }int high1() const { return High1; }int high2() const { return High2; }gen_array2(int,int,int,int);gen_array2(int,int);virtual ~gen_array2();gen_array2(const gen_array2& a);gen_array2& operator=(const gen_array2& a);};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -