加強的鍊錶

2021-04-12 21:15:29 字數 2832 閱讀 8687

#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...