線性表
抽象資料型別標準定義:
獲得元素演算法:
插入演算法思路:
刪除演算法思路:
優缺點:
缺點
**片段:
#define maxsize 50
#define ok 1
#define error 0
typedef int elemtype;
typedef int status;
typedef struct
sqlist;
//獲取元素演算法
status getelem(sqlist *l,int i, elemtype *e)
*e = l->data[i-1];
return ok;
} //時間複雜度為o(1)
//插入演算法
status linkinsert(sqlist *l, int i, elemtype *e)
if(i < l->length)
l->data[i-1] = *e;
l->length++;
return ok;
}} //時間複雜度為o(n)+ o(1)
//刪除演算法
status linkdelete(sqlist *l, int i, elemtype e)
*e = l->data[i-1];
for(k = i; k < l->length; k++)
l->length--;
return ok;
} //時間複雜度為 o(n)
頭節點
獲得鍊錶第i個資料的演算法思路:
單鏈表第i個資料插入結點的演算法思路:
單鏈表第i個資料刪除結點的演算法思路:
單鏈表整表建立演算法思路:
頭插法建立單鏈表思路:
尾插法建立單鏈表思路:
單鏈表整表刪除演算法思路:
**片段:
#define ok 1
#define error 0
#include
typedef int elemtype;
typedef int status;
typedef struct node
node;
typedef struct node *linklist;
//獲得元素演算法
status getelem(linklist *l,int i, elemtype *e)
if(j>i || !p)
*e = p->data;
return ok;
} //時間複雜度為o(n)
//插入演算法
status linklistinsert(linklist *l, int i, elemtype *e)
if(!p || j>i)
s = (linklist)malloc(sizeof(node));
s->data = e;
s->next = p->next;
p->next = s;
return ok;
} //時間複雜度為o(n)
//刪除演算法
status linklistdelete(linklist *l, int i, elemtype *e)
if(!p || j>i)
q = p->next;
p->next = q->next;
*e = q->data;
free(q);
return ok;
}//頭插法建立單鏈表
void createlisthead(linklist *l. int n)
} //時間複雜度為o(n)
//尾插法建立單鏈表
status createlisttail(linklist *l, int n)
r->next = null;
}/**
****
****
****
****
****
****
****
****
****
****
****
****
****
*** * sqlist l 和 sqlist *l 不加星號表示定義結構體變數,加了星號表示
* 定義指向結構體的指標變數,這個加與不加無所謂,只是結構體中分量的訪問
* 形式不同。elemtype *e 是表示指標變數, elemtype e 是表示一般的
* 變數。在此程式中是作為形參,表示傳遞不同的內容,前者傳遞位址值,後者
* 傳遞資料。
****
****
****
****
****
****
****
****
****
****
****
****
****
****
*/
資料結構與演算法之線性表
1.線性表的基本概念 線性表是零個或多個資料元素的有序佇列.特性 資料元素之間是有順序的 資料元素個數是有限的 資料元素的型別必須相同.2.線性表的數學定義及性質 線性表是具有相同型別的n n 0 個資料元素的有限序列 a0,a1,a2.an ai是表項,n是表長度.性質 a0是線性表中的第乙個元素...
資料結構與演算法之線性表
線性表屬於資料結構中邏輯結構中的線性結構。回憶一下,資料結構分為物理結構和邏輯結構,邏輯結構分為線性結構 幾何結構 樹形結構和圖形結構四大結構。其中,線性表就屬於線性結構。剩餘的三大邏輯結構今後會一一介紹。線性表 list 由零個或多個資料元素組成的有限序列。注意 1.線性表是乙個序列。2.0個元素...
資料結構與演算法之 線性表
01線性表 1.線性表的判斷方式就是元素有且只有乙個直接前驅和直接後繼,元素可以為空,此時叫做空表 2.抽象資料型別標準格式 adt 抽象資料型別名 data operation endadt 3.操作偽 operation endadt 4.實際問題 提問 實現兩個線性表a,b的並集操作 思路 迴...