資料結結構學習 線性表

2021-09-08 09:08:19 字數 3132 閱讀 3980

1. 線性表的順序表示指用一組位址連續的儲存單元依次訪問線性表的資料

線性表動態分配順序儲存結構

#define list_init_size 100

#define list_increment 10

typedef struct

elemtype* elem;

int length;

int listsize;

}sqlist;

2。 線性表的鏈式訪問結構的特點是用一組任意的儲存單元儲存線性表的資料(這組儲存單元可以是連續的,也可以是不連續的)為了表達某個元素ai和其直接後繼元素ai+1之間的

邏輯關係,對於資料ai除了儲存其本身的資訊外,還儲存乙個指向其後繼元素的資訊(即直接後繼的位置)。這兩部分資訊組成資料元素ai的儲存影像,成為節點。他包括兩個域。

其中儲存資料元素資訊的域為資料域。訪問直接後繼位置的域為指標域,指標域儲存的資訊為指標或鏈。

-----線性表單鏈表儲存結構------

if (head.next == null)  // 空表

void createlist ( linklist & l,int n)

l = (linklist) malloc(sizeof(lnode));

l->next = null ;  //先建立頭結點

for ( int i=0; ip = (linklist) malloc (sizeof(lnode));

scanf(&p->data);

p->next = l->next; //插入表頭

l->next = p;

3.用一維陣列描述線性鍊錶

-----線性表靜態鍊錶儲存結構------

假設由終端輸入集合元素,先建立表示集合a的靜態鍊錶s,而後輸入集合b的元素的同時查詢s表,弱存在b相同的元素,則從s刪除之,否則將元素插入到s。

void initspace_sl(slinklist ( & space )

for(i=0 ; ispace[i].cur = i+1;

space[maxsize-1] = 0;

int malloc_sl(slinklist & space)

//若備用空間鍊錶非空,則返回分配的節點下標,否則返回0.

i = space[0].cur;

if (space[0].cur) space[0].cur = space[i].cur;

return i;

void free_sl(slinklist & space,int k)

//將k的空閒節點**到備用鍊錶。

4. 迴圈鍊錶是令一種形式的鏈式儲存結構,他的特點是表中最後乙個節點的指標指向頭結點,整個鍊錶形成乙個環。由次,從表中任乙個節點出發都能找到其他節點。

5。雙向鍊錶,有2個指標域,其中乙個指向後繼,另乙個指向前驅。

-----線性表雙向鍊錶結構-----

-----帶頭結點的線性鍊錶------

typedef struct lnode * link, *position;

typdef struct linklist;

應用 ,一元多項式的表示及相加

typedef struct elemtype;

typedef linklist polynomail;

基本操作的函式原型

void createpolyn(polynomail &p ,int m) ; //輸入m項的係數和指數,建立乙個一元多項式的有序鍊錶p

void destroypolyn(polynomail &p);

void printpolyn(polynomail &p);

int polynlength(polynomail &p);

void addpolyn(polynomail &pa,polynomail &pb);

void subtractpolyn(polynomail &pa,polynomail &pb);

void multiplypolyn(polynomail &pa,polynomail &pb);

void createpolyn(polynomail &p ,int m); ha = qa;}  // 修改多項式pa當前結點的系數值

else //switch

}//while

freenode(hb); //釋放pb的頭結點

資料結構學習 線性表

線性表一般分為順序結構和鏈式結構。順序表裡面元素的位址是連續的,如陣列 鍊錶裡面節點的位址不是連續的,是通過指標連起來的,如單鏈表 順序結構 優點 易於查詢,索引快 list n 這樣的操作,o 1 複雜度。缺點 擴充套件性弱,不易刪除 插入,這兩項操作均是o n 的時間複雜度 鍊錶結構 優點 擴充...

資料結構學習 線性表

考試前複習下資料結構,把一些知識點整理在這!主要參考了殷人昆主編的 資料結構 用物件導向方法與c 語言描述 這本書,以及中山大學劉聰老師的課件內容!鍊錶雙鏈表 線性表 linear list 是由n n 0 個資料元素 結點 a 0 a 1 a 2 a n 1 組成的有限序列。維基百科 線性表是乙個...

資料結構學習 線性表

鏈式儲存用指標表示邏輯結構,可以很方便的表示各種邏輯結構。順序儲存結構中,插入和刪除結點需要大量的移動元素,效率很低。順序儲存結構既可以順序訪問也可以隨機訪問,而鏈式結構只可以順序訪問。對n個元素進行排序的時間複雜最快也要o n 初始有序 通常是o nlog2n 或o n 2 單鏈表只能順序查詢插入...