最近自學資料結構,對鍊錶部分的內容做了一些總結,具體如下:
對於鍊錶的結點,我選擇用結構體來描述,當然還可以用復合類,繼承等方法來描述,**如下:
#include
#include
using
namespace std;
struct linknode
//結構體的建構函式,只初始化指標
linknode
(const
int item,linknode *p=
null
)//結構體的建構函式 ,初始化指標和資料
};
class
list
//建構函式 ,呼叫結構體只初始化指標的建構函式
list
(const
int x)
//建構函式,呼叫結構體的第二個建構函式
~list()
//析構函式
void
makeempty()
;//將鍊錶置為空表
intlength()
const
;//常成員函式,返回鍊錶的長度
linknode *
gethead()
//返回頭結點
linknode *
search
(int x)
;//搜尋含x的元素
linknode *
locate
(int i)
;//搜尋第i個元素的位址
void
setdata
(int i,
int&x)
;//用x修改第i個元素的值
bool
getdata
(int i,
int&x)
const
;//取出第i個元素的值
bool
insert
(int i,
int&x)
;//在第i個元素後插入x
bool
remove
(int i,
int&x)
;//刪除第i個元素,x返回該元素的值
bool
isempty()
const
//判斷鍊錶是否為空
void
display()
;void
(int x)
;//在鍊錶的末尾新增元素
};
void list::
makeempty()
}//將鍊錶置為空鍊錶
int list::
length()
const
return count;
}//帶有附加頭結點鍊錶的長度
linknode* list::
search
(int x)
return current;
}//搜尋含x的結點,成功則返回x結點的位址,否則返回null
linknode* list::
locate
(int i)
return current;
}//返回第i個結點的位址
bool list::
getdata
(int i,
int&x)
const
if(current==
null
)return
false
;else
}//取出鍊錶中第i個元素的值
bool list::
insert
(int i,
int&x)
//將乙個新的結點插入到第i個元素的後面,該結點的資料部分為x
void list::
setdata
(int i,
int&x)
bool list::
remove
(int i,
int&x)
void list::
display()
}void list::
(int x)
current-
>link=newnode;
}
主函式中主要是一些測試函式功能的**,可根據自己的需求,自行編寫相應**
int
main()
cout<<
"原鍊錶:"
display()
;int length=l.
length()
; cout<<
"鍊錶長度:"
/帶上頭結點,長度為20
int x=22;
bool loc=l.
insert(19
,x);
cout<<
"插入成功:"
"插入後的鍊錶:"
display()
;int y;
int m=l.
remove(8
,y);
cout<<
"刪除的元素為:"
"刪除後的鍊錶為:"
;int n=16;
l.setdata(6
,n);
cout<<
"修改後的鍊錶"
;return0;
}
第一次發帖,上述內容如有錯誤,歡迎各位大神指正! 帶表頭結點的單鏈表的基本操作
已知l 是帶表頭結點的非空單鏈表,且p結點既不是首元結點,也不是尾元結點 1.刪除p結點的直接後繼結點 思路 先用工作結點儲存p結點的直接後繼,然後將p結點的指標域指向p結點的直接後繼節點的直接後繼節點,然後再刪除該工作結點。2.刪除p節點的直接前驅結點 有毛病 思路 用工作結點儲存p結點,然後將表...
帶頭結點的單鏈錶類C 手動實現
最近在複習資料結構,看到單鏈表這部分,現在用的教材大部分都是嚴蔚敏的c語言版吧,參考了一些書籍,手動編寫了c 下單鏈錶類的實現,環境是visual studio 2010,函式是對照著教材宣告挑了個寫的。如下 include using namespace std class mylist 提前宣告...
帶表頭結點的單鏈表 的插入 刪除 排序
include include include struct node 結構體定義值域和指標域 typedef struct node node typedef struct node link void is malloc ok link new node 判斷分配空間是否成功 void crea...