鍊錶結點(listnode)類
鍊錶(list)類
#ifndef listnode_h
#define listnode_h
class
list
;// 鍊錶類定義(復合方式)
class
listnode
// 鍊錶結點類
private
:int data;
//結點資料, 整型
listnode *next;
//結點指標};
class
list
//鍊錶類
//建構函式,使新建的鍊錶成為空鍊錶
intinsertdata
(int x,
int i)
;int
removedata
(int
&x,int i)
;void
displayall()
;private
: listnode *first,
*current;
//表頭指標,當前指標};
#endif
// listnode_h
#include
using
namespace std;
#include
"listnode.h"
//在鍊錶第i個結點處插入新元素x,成功返回1,失敗返回0
int list ::
insertdata
(int x,
int i)
if(current ==
null
&& first !=
null
) listnode *newnode =
newlistnode
(x,null);
if(first ==
null
|| i ==0)
//插在表前
else
//插在表中間或表尾
return1;
}//在鍊錶中刪除第i個結點,通過x返回其值
int list ::
removedata
(int
&x,int i)
else
if(current ==
null
|| current-
>next ==
null
)else
//刪除表中間或表尾元素
} x = q-
>data;
// 返回第 i 個結點的值
delete q;
// 刪除鍊錶節點q
return1;
}//顯示鍊錶中所有資料
void list ::
displayall()
cout << endl;
}
#include
#include
#include
"listnode.h"
using
namespace std;
intmain()
a.displayall()
; cout << endl;
system
("pause");
}
//結果9,
8,7,
6,5,
4,3,
2,1,
0,9,
8,7,
6,5,
4,3,
2,1,
0,press any key to continue..
.
單鏈表的應用例項
1 有乙個帶頭結點的單鏈表l a1,b1,a2,b2,a3,b3 an,bn 設計乙個演算法將其拆分為兩個帶頭結點的單鏈表l1和l2,其中l1 a1,a2,a3,a4 an l2 bn,b3,b2,b1 要求l1使用l的頭節點。解 利用原單鏈表l中的所有結點通過改變指標域重組成兩個單鏈表l1和l2。...
單鏈表的模板類 C
header.h pragma once includeusing namespace std templatestruct linknode 節點類定義 初始化指標域的建構函式 linknode const t item,linknode ptr null 初始化資料成員和指標成員和指標的建構函式...
C 模板類 單鏈表
c 作業,用模板類寫鍊錶,完成了對基本的單鏈表的插入,刪除等。include using namespace std templatestruct node templateclass linkedlist linkedlist t find int index 返回索引對應的值 void remo...