一、順序表的儲存
#include.h>
using namespace std;
const int maxsize=
100;
typedef int datatype;
typedef struct
seqlist;
二、順序表的操作
初始化順序表
void
initlist
(seqlist *l)
建立順序表
int creatlist
(seqlist*
l,datatype a[
],int n)
//乙個指標,乙個陣列,乙個長度n
if(n>maxsize)
cout<<
"空間不夠,無法建立"
0;i->data[i]
=a[i];l
->length=n;
return1;
}
判空操作
int empty
(seqlist*l)
求長度
int length
(seqlist*l)
遍歷操作
void
printlist
(seqlist*l)
按值查詢
int locate
(seqlist*
l,datatype x)
//x為所查值
按位查詢
int get
(seqlist*
l,int i,datatype*ptr)
//ptr為所查位置
else
插入操作
int insert
(seqlist*
l,int i,datatype x)
//i為插入位置,x為元素
if(i<1||
l->length+
1for(int j=l-
>length;j>=i;j--}l
->data[j]=l
->data[j-1]
;//所有值往後移一位l-
>data[j-1]
=x;l
->length++
;return
1;
刪除操作
int delete
(seqlist *
l,int i,datatype *ptr)
//指標用來返回刪除值
if(i<
1||i>l-
>length)
*prt=l-
>data[i-1]
;for
(int j=i;j>length;j++}l
->data[j-1]
=l->data[j]
;//全體左移l-
>length--
;return
1;
三、單鏈表的儲存
typedef int datatype;
typedef struct node
node;
四、單鏈表的操作
單鏈表的初始化
node *
initlist()
判空操作
int empty
(node *first)
遍歷操作
void
printlist
(node *first)
}
求鍊錶的長度
void
printlist
(node *first)
return count;
}
按值查詢
這裡返回的是元素序號
int locate
(node *first,datatype x)
return0;
}
按位查詢
int get
(node *first,int i,datatype *ptr)
//指標傳值
if(p==
null
)else
插入操作
int insert
(node*first,int i,datatype x)
//x為待插入值
if(p==
null
)else
}
頭插法建立單鏈表
node *
creatlist
(datatype a[
], int n)
return first;
}
尾插法
node *
creatlist
(datatype a,
int n)
rear-
>next= null;
/*單鏈表建立完畢,將終端結點的指標域置空*/
return first;
}
第三章線性表
線性表 零個或多個資料元素的有限序列.線性表的順序儲存結構 指的是用一段位址連續的儲存單元依次儲存線性表的資料元素.頭指標 頭指標是指鍊錶指向第乙個節點的指標,若煉表有頭結點,則是指向頭結點的指標.無論鍊錶是否為空,頭指標均不為空.頭指標是鍊錶的必要元素 頭結點 頭結點不是鍊錶的必須元素.頭結點是為...
第三章 線性表(2 鍊錶)
單鏈表結構與順序儲存結構優缺點 簡單的對單鏈表結構和順序儲存結構做對比 儲存分配方式 時間效能 空間效能 1.順序儲存結構用一段連續的儲存單元依次儲存線性表的資料元素。2.單鏈表採用鏈式儲存結構,用一組任意的儲存單元存放線性表的元素。1.查詢 順序儲存結構 o 1 單鏈表 o n 2.查詢和刪除 順...
第三章 線性表 順序儲存結構
線性表 list 零個或多個資料元素的有限序列。若將線性表記為 a1,ai 1,ai ai 1 an 則表中 ai 1 領先於ai ai領先於ai 1,稱ai 1是ai的直接前驅元素,ai 1是ai的直接後繼元素。當i 1,2,n 1時,ai有且僅有乙個直接後繼,當i 2,3,n時,ai有且僅有乙個...