線性表的操作集合

2021-10-02 22:28:52 字數 1869 閱讀 4201

本文只含有簡單的線性表的插入刪除,查詢等操作。

一. 線性表的順序儲存

儲存結構:

typedef  int position;     

typedef struct lnode *ptrtlnode; //ptrtlnode為指向lnode型別的指標;

struct lnode;

typedef ptrtlnode list;

初始化線性表:

list makeempty ()

順序表的查詢:

position find(list l,elementtype x)

if(i>l->last) return -1;

else return i; //返回找到的元素值的儲存位置;

}

順序表的插入(主要要注意,傳過來的線性表是否滿了,再判斷要插入的位置是否合理)

bool insert( list l, elementtype x, position p ) //**傳過來的p引數,是要插入的元素在鍊錶中的位置;**

if(p>l->last+1||p<0) //判斷給的插入位置是否合理;

int i=l->last;

for(;i>=p;i--) //把從p位置開始的引數乙個乙個往後挪;

l->data[p]=x;

l->last++;

return true;

}

一. 線性表的鏈式儲存

儲存結構

typedef struct lnode *ptrtolnode;

struct lnode ;

typedef ptrtolnode position;

typedef ptrtolnode list;

建立空表

list  makeempty(list l)

鍊錶的長度遍歷

int  length(list l)

return num;

}

鍊錶的查詢(按照所給得值查詢,並返回查詢位置)

position find(list l ,elementtype x)

return temp;

}

鍊錶的查詢(按照所給的位置查詢,返回查詢到的值)

elementtype find(list l ,int  site) //不帶頭結點 

if(site==0&&temp) return temp->data;

else return -1;

}

鍊錶元素的插入(不帶有頭結點)

bool insertelement(list l,elementtype  x,int i)

else

if(pre==null||cnt!=i-1)

else

} }

鍊錶元素的插入(帶頭結點)

bool insertelement(list l,elementtype  x,int i) //不用單獨考慮頭結點 

if(cnt!=i||!pre)

else

}

鍊錶元素的刪除

bool  deletelement(list  l,int i) //帶頭結點,刪除第i個元素; 

if(cnt!=i||!temp)

else

}

線性表操作

include stdio.h define maxsize 20 define overflow 1 define ok 1 define error 1 void init seqlist int length pointer 構造乙個空的線性表 int insert last int elem...

線性表操作

大概實現的功能 1 建立線性表類。線性表的儲存結構使用鍊錶。2 提供操作 自表首插入元素 刪除指定元素 搜尋表中是否有指定元素 輸出鍊錶。3 接收鍵盤錄入的一系列整數 例10,25,8,33,60 作為節點的元素值,建立鍊錶。輸出鍊錶內容。4 輸入乙個整數 例33 在鍊錶中進行搜尋,輸出其在鍊錶中的...

線性表操作

include using namespace std define maxsize 10000 typedef struct sqlist 在上述定義後,可以通過變數定義語句 sqlist l 將l定義為sqlist型別的變數,便可以利用 l.data i 1 來訪問表中位置 序號為i 的資料 i...