資料結構筆記 線性表

2021-08-04 23:58:59 字數 1977 閱讀 9341

思考:怎麼程式設計解決多項式相加問題?

1.線性表概念

由同型別資料元素構成的有序序列的線性結構

1. 表中元素個數稱為線性表的長度;

2. 線性表中沒有元素時稱為空表;

3. 表的起始位置稱為表頭,結束位置稱為表尾。

2.線性表的adt描述

3.線性表的順序儲存實現

//**未測試

#include

using

namespace

std;

template

class seqlist;

private:

int n;

int maxsize;

t *s; //二維陣列用於儲存線性表

};template

seqlist :: seqlist(maxsize)

template

seqlist :: ~seqlist()

template

t seqlist::findkth(int k,seqlist l)

return -1;

}template

int seqlist::find(t x,seqlist s)

return -1;

}template

bool selist::insert(t x,int i,seqlist l)

s[i] = x;

n++;

return

true;

}bool seqlist::delete(int i,seqlist l)

n--;

return

true;

}

4.線性表的鏈式儲存實現

特點:不要求邏輯上相鄰的兩個元素物理上也相鄰,通過鏈建立起資料元素之間的邏輯關係。

//**未測試可能有小錯誤

#include

using namespace std;

template

class tnode;

private:

t data;

tnode *next;

};class list;

template

int list

::length(list

* head)

return j;

}template

tnode*

list

::findkth(int k,list

* head)

if(i==k) return p;

else

return

null;

}template

tnode*

list

::find(t x,list

* head)

// if(p->data==x) return p;

// else return null; 這兩句合起來就是return p;

return p;

}template

tnode*

list

::insert(t x,int i,list

* head)

int j=

1; while(p && j1) q->next = p->next;

p->next = q;

return head;

}template

tnode*

list

::delete(int i,list

* head)

//刪除非頭節點

int j=

1; while(j1) if(p && p->next)

}

資料結構筆記 線性表

資料元素的資料型別。struct seqlist seqlist sl create int maxlen void sl free seqlist slist 釋放 刪除 順序表。與sqlst create 配對。void sl makeempty seqlist slist 置為空表。intsl...

資料結構 筆記 線性表

定義 由同型別資料元素構成有序序列的線性結構 型別名稱 list 物件集 n n 0 個元素構成的有序序列 操作集 list makeempty 初始化乙個空線性表l elementtype findkth int k,list l 根據位序k,返回相應元素 int find elementtype...

資料結構筆記 線性表

線性表篇 線性表有兩種物理儲存結構 順序儲存結構和鏈式儲存結構。線性表的順序訪問結構是最簡單以及最常用的線性表的儲存方式 我們用一段位址連續的儲存單元依次儲存線性表中的資料元素,其實就是和陣列一樣 通過佔位的方式將一定空間占有,再把相同資料元素型別的資料元素依次放到空間裡 描述順序表的屬性 1.儲存...