線性表的相關演算法總結

2021-10-06 14:04:06 字數 3252 閱讀 2090

鍊錶的操作

線性表的應用

#define maxsize 100

typedef

int elemtype;

typedef

struct

sqlist;

void

initlist_sq

(sqlist &l)

void

destroylist

(sqlist &l)

void

clearlist

(sqlist &l)

int

getlength

(sqlist l)

bool

isempty

(sqlist l)

時間複雜度為o(1)

void

getelem

(sqlist l,

int i,elemtype &e)

時間複雜度為o(n)

int

locateelem

(sqlist l,elemtype e)

時間複雜度為o(n)

void

listinsert_sq

(sqlist &l,

int i,elemtype e)

時間複雜度為o(n)

void

listdelete_sq

(sqlist &l,

int i)

typedef

struct lnode

lnode,

*linklist;

//linklist為lnode型別的指標

void

initlist_l

(linklist &l)

void

destroylist_l

(linklist &l)

}

void

clearlist

(linklist &l)

l->next =

null

;//頭結點指標域為空

}

int

listlength_l

(linklist l)

return count;

}

bool

listempty

(linklist l)

時間複雜度為o(n)

//獲取第i個位置的元素

void

getelem_l

(linklist l,

int i,elemtype &e)if(

!p || j>i)

//第i個元素不存在

return error;

e = p-

>data;

//取第i個元素

}

lnode *

locateelem_l

(linklist l,elemtype e)

時間複雜度為o(1)

void

listinsert_l

(linklist l,

int i,elemtype e)

//i大於表長 + 1或者小於1 if(

!p || j>i-1)

return error;

//生成新結點*s

s =new lnode;

s->data = e;

//將結點*s的資料域置為e

s->next = p-

>next;

//將結點*s插入l中

p->next = s;

}

時間複雜度為o(1)

void

listdelete_l

(linklist l,

int i,elemtype &e)

//刪除位置不合理 if(

!p->next || j>i-1)

return error;

//臨時儲存被刪結點的位址以備釋放

r = p-

>next;

//改變刪除結點前驅結點的指標域

p->next = r-

>next;

e = r-

>data;

//釋放結點

delete r;

}

//前插法

void

createlist_h

(linklist &l,

int n)

}//後插法

//正位序輸入n個元素的值,建立帶表頭結點的單鏈表l

void

greatelist_r

(linklist &l,

int n)

}

void

union

(list &la,list &lb)

}

//按值排序的單鏈表la,lb,歸併為lc後也按值排序

void

mergelist_l

(linklist &la,linklist &lb,linklist &lc)

else

}//插入剩餘段

pc->next = pa?pa:pb;

//釋放lb的頭結點

delete pb;

}

void

mergelist

(list la,list lb,list &lc)

else

}while

(i<=la_len)

while

(j<=lb_len)

}

線性表總結

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

線性表總結

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

線性表總結

1 線性表的主要內容 線性表的邏輯結構 線性表的順序結構 線性表的鏈式儲存 順序表和單鏈表的比較 2 線性表的定義 零個或多個具有相同型別的資料元素的有限序列。元素的個數就是表的長度。長度為0就是空表。順序儲存結構及實現 用一段連續的位址來儲存資料。每個元素在儲存空間的相鄰關係和物理相鄰關係相同,可...