線性表學習總結

2021-09-29 00:14:15 字數 2852 閱讀 2955

作用:線性表中在邏輯結構上相鄰的資料元素儲存在相鄰的物理儲存單元中,即通過資料元素物理儲存的相鄰關係來反映資料元素之間邏輯上的相鄰關係。

順序儲存的實現:一維陣列儲存順序表中的資料

const int maxsize=100;

template class seqlist // 析構函式為空

int length () // 求線性表的長度

t get (int i); // 按位查詢,取線性表的第 i 個元素

int locate (t x) ; // 按值查詢,求線性表中值為 x 的元素序號

t delete (int i) ; // 刪除線性表的第 i 個元素

void printlist () ; // 遍歷線性表,按序號依次輸出各元素

}; //有參建構函式

template seqlist:: seqlist(t a, int n)

//刪除操作

template t seqlist::delete(int i)

//按值查詢

template int seqlist::locate(t x);

template class linklist

linklist ( t a[ ], int n ) ;

~linklist ( ) ;

int length ( ) ;

t get ( int i ) ;

int locate ( t x ) ;

void insert ( int i, t x ) ;

t delete ( int i ) ;

void printlist ( ) ;

private:

node*first; // 單鏈表的頭指標 , 可以省略

}; //頭插法構造單鏈表

template linklist:: linklist(t a[ ], int n)

}//尾插法構造單鏈表

template linklist:: linklist(t a[ ], int n)

r->next=null; //單鏈表建立完畢,將終端結點的指標域置空

}//單鏈表的遍歷

template linklist:: printlist()

}//按位置查詢

template t linklist::get(int i)

if (!p) throw "位置";

else return p->data;

}//插入操作

template void linklist::insert(int i, t x)

if (!p) throw "位置";

else

}//刪除操作

template t linklist::delete(int i)

if (!p || !p->next) throw "位置"; //結點p不存在或結點p的後繼結點不存在

else

}//析構函式

template linklist:: ~linklist()

}

//不帶頭節點的單鏈表的構造

//頭插法

first=null;

for(int i=0;i;

s->data=a[i];

s->next=first;

first=s;

}//尾插法

node*r;

head=null;

if(n<=0)return;

s=new node;

s->data=a[0];

s->next=head;

head=s;

r=head;

for(int i=1;i;

s->data=a[i];

r->next=s;

r=s;

}

特點:

首尾相接的鍊錶。

可以從任一節點出發,訪問鍊錶中的所有節點。

判斷迴圈鍊錶中尾結點的特點:

q->next==first。

template struct node

;template class cyclelinklist;

//空表的構造

template cyclelinklist:: cyclelinklist( )

//尾插法

template cyclelinklist:: cyclelinklist(t a[ ], int n)

r->next=first; //單鏈表建立完畢,將終端結點的指標域指向頭結點

}//頭插法

template cyclelinklist:: cyclelinklist(t a[ ], int n,int k)

}

template struct  dnode; 

template class doublelink ;

//空表的構造

template doublelink ::doublelink()

//頭插法

node*s;

s=new node;

s->data=data;

s->rlink=head->rlink;

head->rlink=s;

s->llink=head;

if (s->rlink)

s->rlink->llink=s;

return;

}//遍歷操作

template void doublelink::display()

cout}

線性表的學習總結

1.線性表的定義 線性表是具有相同特性的資料元素的乙個有限序列。2.1線性表的順序儲存結構 順序表 線性表的順序儲存結構是,把線性表的所有元素按照其邏輯順序依次儲存到從計算機儲存器中指定儲存位置開始的一段連續的儲存空間中。在定義乙個 在定義乙個線性表的順序儲存型別時,除了定義乙個陣列來儲存線性表中的...

線性表總結

例 一元多項式及其運算 一元多項式 主要運算 多項式相加 相減 相乘等 分析 如何表示多項式?多項式的關鍵資料 多項式項數n 各項係數ai 及指數 i 方法1 順序儲存結構直接表示 陣列各分量對應多項式各項 a i 項xi的係數ai 方法2 順序儲存結構表示非零項 按指數大小有序儲存!相加過程 從頭...

線性表總結

順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。將表中元素乙個接乙個的存入一組連續的儲存單元中,這種儲存結構是順序結構。二 單向鍊錶 單向鍊錶 單鏈表 是鍊錶的一種,其特點是鍊錶的鏈結方向是單向的,對鍊錶的訪問要通過順序讀取從頭部開始。三 迴圈鍊錶 它和單鏈表的差別僅在於,判別...