鍊錶的節點均單向指向下乙個節點,形成一條單向訪問的資料鏈。
typedef struct _linknode linknode, linklist; //鍊錶節點、鍊錶
bool initlist(linklist* &l)//構造乙個空的單鏈表 l
bool listinsert_front(linklist* &l, linknode * node)
bool listinsert_back(linklist* &l, linknode *node)
//任意位置插法
bool linkinsert(linklist* &l, int i, int &e)//單鏈表的插入
if (!p || j>i-1)
s=new linknode; //生成新結點
s->data=e; //將新結點的資料域置為 e
s->next=p->next; //將新結點的指標域指向結點 ai
p->next=s; //將結點 p 的指標域指向結點 s
return true;
}
void linkprint(linklist* &l) //單鏈表的輸出
coutif (!p || j>i)
e=p->data; //取第 i 個結點的資料域
return true;
}
bool link_findelem(linklist *l, int e) //按值查詢
if(!p)return false; //查詢失敗 p 為 null
return true;
}
bool linkdelete(linklist* &l, int i) //單鏈表的刪除
if (!(p->next)||(j>i-1))//當 i>n 或 i<1 時,刪除位置不合理
return false;
q=p->next; //臨時儲存被刪結點的位址以備釋放空間
p->next=q->next; //改變刪除結點前驅結點的指標域
delete q; //釋放被刪除結點的空間
return true;
}
void linkdestroy(linklist* &l) //單鏈表的銷毀
linknode, linklist; //linklist 為指向結構體 lnode 的指標型別
bool initlist(linklist* &l)
//前插法
bool listinsert_front(linklist* &l, linknode *node)
//尾插法
bool listinsert_back(linklist* &l, linknode *node)
//指定位置插入
bool linkinsert(linklist* &l, int i, int &e)
if(!p || j>i-1)
s=new linknode;//生成新節點
s->data = e;
s->next = p->next;
p->next = s;
return true;
}void linkprint(linklist* &l)
coutp = l->next;
index = 1;
while(p && indexnext; //p 指向下乙個結點
index++; //計數器 index 相應加 1
}if(!p || index>i)
e=p->data;
return true;
}bool link_findelem(linklist *l, int e, int &index) //按值查詢
while(p && p->data!=e)
if(!p)
return true;
}bool linkdelete(linklist* &l, int i) //單鏈表的刪除
while((p->next) && (indexnext;
index++;
}if(!p->next || (index>i-1) )
q = p->next; //臨時儲存被刪結點的位址以備釋放空間
p->next = q->next;//改變刪除結點前驅結點的指標域
delete q; //釋放被刪除結點的空間
return true;
}void linkdestroy(linklist* &l) //單鏈表的銷毀
else
linkprint(l);
}//3. 單鏈表根據位置獲取元素
int element = 0;
if(link_getelem(l, 2, element))else
//4. 單鏈表根據值查詢元素所在的位置
int index=0;
if(link_findelem(l, 10, index))else
//5. 單鏈表刪除元素
if(linkdelete(l, 2))else
//6. 銷毀單鏈表
linkdestroy(l);
system("pause");
return 0;
}
資料結構與演算法03 單鏈表
使用帶頭節點的單向鍊錶,實現水滸英雄排行榜的管理。對英雄人物完成增刪改查等操作。package com.wang.linkedlist author wzy create 2020 02 03 12 35 public class linkedlist 定義singlelinkedlist clas...
資料結構03 鍊錶之單鏈表
鍊錶帶頭結點和不帶頭結點的區別?完成單鏈表的以下基本操作 完整 鍊錶的結構非常多樣,以下情況組合起來就有8種鍊錶結構 單向 雙向 帶頭 不帶頭 迴圈 非迴圈 鍊錶的節點 typedef struct slistnode node,pnode 鍊錶的結構,給乙個頭指標儲存鍊錶第乙個節點的位址 type...
資料結構單鏈表
初學資料結構,貼段自己編寫的單鏈表程式,希望自己能夠一直以強大的學習熱情持續下去!自勉!2012年3月30日 於大連 include using namespace std typedef struct node linklist,node linklist makelist int n void ...