本文只含有簡單的線性表的插入刪除,查詢等操作。
一. 線性表的順序儲存
儲存結構:
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...