資料結構之單鏈表

2021-09-27 03:32:39 字數 1741 閱讀 3443

單鏈表實現源**:

#include#includeusing namespace std;

typedef struct _linknodelinknode,linklist; //linklist為指向結構體lnode的指標型別(指向頭結點)

//1.鍊錶初始化

bool initlist(linklist* &l)

//2.前插法

bool listinsert_front(linklist* &l,linknode *node)

//3.尾插法

bool listinsert_back(linklist* &l,linknode *node)

//4.單鏈表的輸出

void linkprint(linklist* &l)

coutj++;

} if(!p||j>i-1)

s=new linknode; //生成新節點

s->data=e;

s->next=p->next;

p->next=s;

return true;

}//6.單鏈表取值

bool link_getelem(linklist* &l,int i,int &e)

if(!p||index>i) return false; //i值不合法,i>n或i<0;

e=p->data;

return true;

}//7.查詢(按值查詢)

bool link_findelem(linklist* &l,int e,int &index)

if(!p)return false;//查無此值

return true;

}//7.刪除指定元素

bool linkdelete(linklist* &l,int i)

if(!p->next||index>i-1)return false;//當i>n或inext; //臨時儲存被刪除結點的位址以備釋放空間

p->next=q->next;//改變刪除結點前驅結點的指標域

delete q; //釋放被刪除結點的空間

return true;

}//9.銷毀單鏈表

void linkdestroy(linklist* &l)

//3.使用尾插法插入資料

//int n;

cout<<"尾插法建立單鏈表"<>n;

cout<<"\n請依次輸入n個元素:"<0)

//4.單鏈表的輸出

linkprint(l);

//5.指定位置插入(任意位置插入元素)

int i,x;

for(int j=0;j<3;j++)

linkprint(l);

//6.指定位置取值

int element=0;

if(link_getelem(l,2,element))else

//7.單鏈表根據值查詢元素所在位置

int index=0;

cout<<"查詢開始"

//8.單鏈表刪除元素

if(linkdelete(l,2))cout<<"刪除成功"

//9.銷毀單鏈表

linkdestroy(l);

system("pause");

return 0;

}

資料結構之單鏈表

date 08 07 06 descript 單鏈表的實現與應用 public class linlist public node gethead 定位函式 public void index int i throws exception if i 1 current head.next int j...

資料結構之單鏈表

鍊錶 儲存結構的一種,包含兩個部分,資料域和指標域,相對於順序儲存結構來說,插入和刪除的演算法時間複雜度只為o 1 定義 定義 typedef struct node linklist linklist,指標指向每乙個元素 typedef struct nodenode 以下為簡單的c語言實現 in...

資料結構之單鏈表

由於順序表再插入或者刪除時需要移動大量資料,並且如果表比較大,會比較難分配連續的儲存空間導致儲存資料失敗。因此可以採用鍊錶結構,鍊錶結構是一種動態儲存分配的結構形式,可以根據需要動態的申請所需的儲存單元。鍊錶又分為單鏈表,雙向鍊錶,以及單迴圈鍊錶,多重鏈的迴圈鍊錶。本文先介紹單鏈表。典型的單鏈表結構...