線性表的順序儲存與鏈式儲存

2021-08-03 02:15:40 字數 2031 閱讀 2771

線性表的順序儲存

#include

#include

#include

using

namespace

std;

#define maxsize 100

#define elementtype int

typedef

struct lnode *list;

struct lnodel;

list ptr;

//初始化

list makeempty()

//查詢

int find(elementtype x,list ptrl)

//插入

void insert(elementtype x,int i,list ptrl)

if(i<1||i>ptrl->length+2)

for(j=ptrl->length;j>=i;j--)

ptrl->data[j+1]=ptrl->data[j];

ptrl->data[i-1]=x;

ptrl->length++;

return;

}//刪除

void delete(int i,list ptrl)

for(j=i;j<=ptrl->length;j++)

ptrl->data[j-1]=ptrl->data[j];

ptrl->length--;

return;

}//例子

int main()

j=find(4,ptr);

cout

0;}

線性表的鏈式儲存

#include

#include

#include

using namespace std;

#define maxsize 100

#define elementtype int

typedef struct lnode *

list;

struct lnodel;

//初始化

list listinit()

ptrl->next=

null;

return ptrl;

}//頭插法建立單鏈表(帶頭結點)

list listcreat1()

return head;

} //尾插法建立單鏈表(帶頭結點)

list listcreat2()

r->next=

null;

return head;

} //求表長

int length(list ptrl)

return j;

} //查詢

/*按序號查詢*/

list findkth(int k,list ptrl)

if(i==k) return p; /*找到底k個元素,返回指標*/

else

return

null; /*否則返回空指標*/

} /*按值查詢*/

list find(elementtype x,list ptrl)

//插入

/*不帶頭結點*/

list insert(elementtype x,int i,list ptrl)

p=findkth(i-

1,ptrl);

if(p==

null)else

} //刪除

/*不帶頭結點*/

list delete(int i,list ptrl)

p=findkth(i-

1,ptrl); //查詢第i-1個結點

if(p==

null)else

if(p->next==

null)else

} //例子

int main()

線性表順序儲存和鏈式儲存

輸入第1行是乙個整數n,表示之後還有n行輸入。每行輸入表示對線性表的一條操作指令,格式是 指令編號 引數1 引數2 如有 指令編號為3,表示find操作,此時只有乙個引數,即待查元素的值。順序儲存 include using namespace std const int maxn 1e4 1 st...

線性表的順序儲存和鏈式儲存

線性表的順序儲存是指用一組位址連續的儲存單元依次儲存線性表中的資料元素,從而使得邏輯上相鄰的兩個元素在物理位置上也相鄰。採用順序儲存的有點是可以隨機訪問表中的元素,缺點是插入和刪除操作需要移動元素。在插入之前要移動元素以挪出空的儲存單元,然後再插入元素 刪除操作同樣需要移動元素,以填充被刪除的元素空...

線性表順序儲存和鏈式儲存比較

儲存密度 是指乙個節點中資料元素所佔的儲存單元和整個節點所佔的儲存單元之比。1 相鄰資料元素的存放位址也相鄰 邏輯與物理統一 2 要求記憶體中可用的儲存單元的位址必須是連續的。優點 1 儲存密度大 1 儲存空間利用率高。2 方法簡單,各種高階語言中都有陣列,容易實現。3 不用為表示節點間的邏輯關係而...