從現在開始,我們開始討論如何實現一些常用的資料結構和其中的一些經典演算法.等把資料結構講完了.我可能會繼續討論vc++的程式設計只是以及vs平台下的c/c++開發等等.呵呵.我們進入正題吧.
我在這裡就只實現線性表的連表結構.當然了,這裡實際上包含了好多知識.我希望大家在引用的時候.一定要領悟裡面的一些變成思想.和變成風格以及變成技巧.廢話不說了.看**吧.對了,我這裡使用模板實現的.
#ifndef _list_h_
#define _list_h_
#define null 0
template
class clist;
template
struct elem
;public:
elem(t e):elem(e),pnext(null),pfore(null){};
};/*-------------------------------------*/
宣告:1、該線性表是基於0的索引
/*-------------------------------------*/
template
class clist
cout << endl;
}#endif//_use_output_
private:
private:
elem* m_phead;
elem* m_ptail;
int m_nlen;
};template
clist::clist()
template
clist::clist( const t e )
template
clist::clist( const clist& l )
m_nlen = l.m_nlen;
}template
clist::~clist()
template
int clist::insert( int pos, const t e )
p ->pnext = pelem;
pelem ->pfore = p;
pelem ->pnext = q;
q ->pfore = pelem;
}else
p ->pfore = pelem;
pelem ->pnext = p;
pelem ->pfore = q;
q->pnext = pelem;
}m_nlen++;
return pos;
}template
int clist::insert( int pos, const clist& l )
r = l.m_ptail ->pfore ;
while( r != l.m_phead )
}else
r = l.m_phead ->pnext ;
while( r != l.m_ptail )
}m_nlen += l.m_nlen;
return pos;
}template
int clist::pushback( const t e )
template
int clist::pushback( const clist& l )
m_nlen += l.m_nlen;
return m_nlen - 1;
}template
int clist::find( const t e )
return npos;
}template
int clist::reversefind( const t e )
return npos;
}template
int clist::getat( t & e, int pos )
e = p ->elem;
}else
e = p ->elem;
}return pos;
}template
int clist::setat( const t e, int pos )
p ->elem = e;
}else
p ->elem = e;
}return pos;
}template
bool clist::isempty()
template
int clist::getlength()
template
void clist::destroylist()
m_phead ->pnext = m_ptail;
m_ptail ->pfore = m_phead;
m_nlen = 0;
}template
t & clist::operator ( int pos )
return p ->elem;
}else
return p ->elem;}}
template
void clist::operator =( const t e )
template
void clist::operator =( const clist& l )
template
void clist::operator +=( const t e )
template
void clist::operator +=( const clist& l )
template
clist& operator +( const clist& l, const t e )
template
clist& operator +( const t e, const clist& l )
template
clist& operator +( const clist& l1, const clist& l2 )
#endif//_list_h_
mysql 線性表 資料結構之線性表
概要 參考 大話資料結構 把常用的基本資料結構梳理一下。線性表定義 線性表 list 零個或多個資料元素的有限序列。若將線性表記為 a 1,cdots,a a i,a cdots,a n 則表中 a 領先於 a i a i 領先於 a 稱 a 是 a i 的直接前驅元素,a 是 a i 的直接後繼元...
資料結構之線性表
線性表是具有相同特性的資料元素的乙個有限序列。該序列中所含元素的個數叫做線性表的長度,用n表示,n 0。當n 0時,表示線性表是乙個空表,即表中不包含任何元素。設序列中第i i表示位序 個元素為ai 1 i n 線性表的一般表示為 a1,a2,ai,ai 1,an include include d...
資料結構之線性表
1.什麼是線性表?零個或多個相同型別的資料元素的有限序列。首先它是乙個序列。也就是說,元素之間是有順序的,若元素存在多個,則第乙個元素無前驅,最後乙個元素無後繼,其他每個元素都有且只有乙個前驅和後繼。然後,線性表強調是有限的,即元素的個數是有限的。2.數學定義 若將線性表記為 a1,ai 1,ai,...