思考:怎麼程式設計解決多項式相加問題?
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.儲存...