#ifndef _linkedlist_h_
#define _linkedlist_h_
#include
using namespace std;
class emptylistexception : public logic_error }
;template
class node
t& getdata()
node*& getnext()
};template
class linkedlist
linkedlist(const linkedlist& src); // copy constructor
virtual ~linkedlist(void); // destructor
virtual t& front(void)
return head->getdata();
}virtual t& back(void)
return tail->getdata();
}virtual int size(void)
virtual bool empty(void)
virtual void push_front(t); // insert element at beginning
virtual void push_back(t); // insert element at end
virtual void pop_front(void); // remove element from beginning
virtual void pop_back(void); // remove element from end
virtual void dump(void); // output contents of list
};// copy constructor
template
linkedlist::linkedlist(const linkedlist& src) :
count(0), head(null), tail(null)
}// destructor
template
linkedlist::~linkedlist(void)
}// insert an element at the beginning
template
void linkedlist::push_front(t d)
else
count++;
}// insert an element at the end
template
void linkedlist::push_back(t d)
else
tail = new_tail;
count++;
}// remove an element from the beginning
template
void linkedlist::pop_front(void)
node* old_head = head;
if (this->size() == 1)
else
delete old_head;
count--;
}// remove an element from the end
template
void linkedlist::pop_back(void)
node* old_tail = tail;
if (this->size() == 1)
else
// unlink and reposition
current->getnext() = null;
tail = current;
}delete old_tail;
count--;
}// display the contents of the list
template
void linkedlist::dump(void)
cout << current->getdata();
}cout << ")" << endl;
}#endif
#ifndef _enhancelinklist_h_
#define _enhancelinklist_h_
#include "linkedlist.h"
template
class enhancedlinkedlist: public linkedlist
;template
t& enhancedlinkedlist::find_first(const t& key)
throw emptylistexception("find first not found");
}template
enhancedlinkedlist
enhancedlinkedlist::find_all(const t& key)
end:
return resualt;
}template
void
enhancedlinkedlist::remove_first(const t& key)
this->pop_front();
}while(list.head!=null) }
template
void
enhancedlinkedlist::remove_all(const t& key)
else
}while(list.head!=null) }
#endif //_enhancelinklist_h_
mysql 輔助表的加強
從5.0到5.1,再到5.5,5.6,可以看到多了information schema 完了是多了performance schema 裡面內容不斷增加,這段時間學習oracle,還是世界上是最牛的資料庫,發現裡面的資料字典很牛,你想要的資訊都能查到,很細,但是mysql就沒有這麼方便的途徑了,比如...
鍊錶煉表鍊表 wjm的最愛
建立單個節點 include include include malloc includetypedef struct node list using namespace std struct node int main 接下來是不帶頭結點的順序操作集 typedef int position ty...
鍊錶定義 鍊錶的插入 鍊錶的刪除 鍊錶的查詢
鍊錶的定義 鍊錶是一種常見的重要的資料結構。它是動態地進行儲存分配的一種結構。它可以根據需要開闢記憶體單元。鍊錶有乙個 頭指標 變數,以head表示,它存放乙個位址。該位址指向乙個元素。鍊錶中每乙個元素稱為 結點 每個結點都應包括兩個部分 一為使用者需要用的實際資料,二為下乙個結點的位址。因此,he...