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