// 線性表的鏈式表示和實現
#include
#define ok 1
#define error 0
#define overflow -
2#define maxsize 100
// status是函式返回值型別,其值是函式結果狀態**
typedef int status;
// elemtype是自定義資料型別
typedef int elemtype;
// 迴圈變數
int i,j;
using namespace std;
// 單鏈表的儲存結構
typedef struct lnode
lnode,*linklist; // linklist為指向結構體lnode的指標型別
// 單鏈表的初始化
status initlist(linklist &l)
// 單鏈表的取值
status getelem(linklist l,int i,elemtype &e)
if(!p || j>i) return error; // i值不合法i>n 或 i<=0
e = p->
data; // 取第i個結點的資料域
return ok;
}// 單鏈表的按值查詢
lnode *locateelem(linklist l,elemtype e)
// 單鏈表的插入
status listinsert(linklist &l,int i,elemtype e)
if(!p || j>i-
1) return error; // i>n+1或者i<1
s =new lnode; // 生成新結點*s
s->
data
= e; // 將結點*s的資料域置為e
s->next = p->next; // 將節點*s的指標域指向結點ai
p->next = s; // 將節點*p的指標域指向結點*s
return ok;
}// 單鏈表的刪除
status listdelete(linklist &l,int i)
if(!p || j>i-
1) return error;// 當i>n 或 i<1時,刪除位置不合理
q = p->next; // 臨時儲存被刪除結點的位址以備釋放
p->next = q->next; // 改變刪除結點前驅結點的指標域
delete q; // 釋放刪除結點的空間
return ok;
}// 前插法建立單鏈表(o(n))
void createlist_h(linklist &l,int n)
}// 後插法建立單鏈表(o(n))
void createlist_r(linklist &l,int n)
}int main()
資料結構 線性表 線性表的靜態鏈式表示
資料結構 線性表的靜態鏈式表示 單鏈表 靜態鍊錶 線性表元素序號從1算起 l 0 專設為頭結點 date 2017 4 14 include include define initsize 100 define elemtype char typedef struct lnodelinklist i...
資料結構 線性表 2 鏈式表
鍊錶 所有元素不考慮相鄰位置,哪有空位就到 鍊錶分為單鏈表 雙鏈表 迴圈鍊錶。1.獲得鍊錶第i個資料的演算法思路 1 宣告乙個結點p指向鍊錶第乙個結點,初始化j從1開始 2 當j3 若到鍊錶末尾p為空,則說明第i個元素不存在 4 否則查詢成功,返回結點p的資料。2.單鏈表的插入和刪除 插入 1 宣告...
資料結構 線性表的鏈式表示(鍊錶)
下面介紹第二種順序表,也就是鍊錶 鍊錶有兩個,單鏈表和雙鏈表,先介紹單鏈表 include includetypedef struct nodenode,linklist node creatlist1 node head return head void output node head int ...