#include#includeusing namespace std;
#define list_init_size 100
#define listincrement 10
#define true 1
#define false 0
#define ok 1
#define error 0
#define infeasible -1
#define overflow -2
typedef int elemtype;
typedef int status;
typedef struct lnode
lnode ,*linklist;
/*typedef structlinklist;*/
//構造乙個空的線性表l
status initlist_l(linklist& l)
//銷毀線性表l
status destroylist_l(linklist& l)
return ok;
}//將線性表l置為空表
status clearlist_l(linklist& l)
l->next = null;
return ok;
}//判斷線性表l是否為空表
status listempty_l(linklist l)
//返回線性表l中資料元素的個數
int listlength_l(linklist l)
//用元素e返回線性表l中第i個資料元素的值
status getelem_l(linklist l, int i, elemtype& e)
if(!p||j>i) return error;
e=p->data;
return ok;
}//資料元素之間的關係函式,例如數學關係:a=b
status compare(elemtype a, elemtype b)
//返回線性表l中第乙個與元素e滿足compare()關係的資料元素的位序;若不存在,返回0
status locateelem_l(linklist l, elemtype e, status(*compare)(elemtype, elemtype))
if(!p) return 0;
return i;
}//若cur_e是線性表中l中的資料元素,且不是第乙個,則用pre_e返回它的前驅,否則操作失敗,pre_e無定義
status priorelem_l(linklist l,elemtype cur_e,elemtype& pre_e)
p=q;
}return infeasible;
}//若cur_e是線性表l中的資料元素並且不是最後乙個,則用next_e返回它的後繼,否則操作無效,next無定義
status nextelem_l(linklist l,elemtype cur_e,elemtype& next_e)
p=q;}}
return infeasible;
}status listinsert_l(linklist& l,int i,elemtype e)
if(!p||j>i-1) return error;
linklist s=(linklist)malloc(sizeof(lnode));
s->data=e; s->next=p->next;p->next=s;
return ok;
}//刪除線性表l中的第i個元素。並用元素e返回其值,表l的長度減一
status listdelete_l(linklist& l,int i,elemtype e)
if(!p||jnext; p->next=q->next;e=q->data; free(q);
return ok;
}//訪問線性表中的資料元素
status visit(elemtype i)
return ok;
}int main(void)
else
cout << "刪除失敗!" << endl;
cout << "值為7的資料元素的位置在:";
cout <<"第"<< locateelem_l(l, 7, compare)
if (listempty_l(l))
cout << "是" << endl;
else
cout << "否" << endl;
cout << "現將線性表l置為空表:" << endl;
clearlist_l(l);
cout << "線性表l是否為空表:";
if (listempty_l(l))
cout << "是" << endl;
else
cout << "否" << endl;
cout << "將線性表l銷毀!" << endl;
destroylist_l(l);
}-----+----------------
LinkList單鏈表實現
1.封裝node實體類 package data table.syn.com.common.util 簡單封裝node節點 author administrator public class node public void setvalue object value public node get...
C 模板類實現LinkList
linklist.件 pragma once include 在插入元素時,應該把每乙個元素都儲存下來 模板類中應該能分配節點,快取節點 template struct node template class linklist linklist.cpp檔案 include linklist.h te...
LinkList的乙個簡單實現
鏈式線性表是資料結構裡很簡單但也是很常見的資料結構,相比順序儲存的線性表,可以更快的實現新增和刪除操作,但讀取速度比順序結構會慢。鏈式線性表的關鍵在於,每個資料儲存為節點形式。不僅僅儲存有資料,還有乙個引用 next 指向下乙個節點。鏈式結構還可以再擴充套件為雙向鍊錶 迴圈鍊錶等等。基本原理一樣,只...