//資料域
struct data
;//結點
struct node
;//管理結點的類
class
nodemanager
;//這裡是我嫌棄一堆堆的**出現在main函式裡加的
void
add(nodemanager* manager)
;void
remove
(nodemanager* manager)
;void
insert
(nodemanager* manager)
;void
update
(nodemanager* manager)
;#endif
2.list.cpp
#include
#include
#include
"list.h"
nodemanager::
nodemanager()
void nodemanager::
addnode
(node *newnode)
++length;
}//為了提供方便(雖然現在只有刪除用到了下標,但是以防萬一,這是用來找對應的名字的物件的下標的)
int nodemanager::
findindex
(const
char
*_name)
}//temp==null
std::cout <<
"this guy's not on the list!\n"
;return-1
;//因為前面有可能index=0,所以這裡得是負數了
}void nodemanager::
removenode
(const
char
*_name)}/*
注意這裡,如果要刪除的資料是最後乙個的話,就不能用下面那種:
temp->next->next,這裡會造成指標越界,因為next->next已經是null了
*/if(s_index==length)
else
//不是最後乙個資料執行這裡}}
//找物件,這裡下面兩個都用到了相同功能的**,方便!
node* nodemanager::
findnode
(const
char
*_name)
//temp==null
std::cout <<
"this guy's not on the list!\n"
;return temp;
}void nodemanager::
insertnode
(const
char
*_name, node *newnode)
}void nodemanager::
updatenode
(const
char
*oldname,
char
*newname,
double acc)
}void nodemanager::
shownode()
const
using std::cout;
node *temp = headnode.next;
for(
int i=
0; i
)}
3.menu.cpp
//這一整個cpp檔案就是因為我嫌擠在一起醜弄的
#include
#include
"list.h"
using std::cout;
using std::cin;
void
add(nodemanager* manager)
void
remove
(nodemanager* manager)
void
update
(nodemanager* manager)
4.main.cpp
#include
#include
"list.h"
intmain()
system
("cls");
switch
(input)
}}
有什麼問題歡迎來提問鴨~
也歡迎各位大佬們前來指正!
單鏈表的增刪查改
include includetypedef struct nodenode,linklist int num 查詢給定值的結點,返回結點指標 node findvalue char c,node head return head 查詢給定位置的結點的值 char findindex value n...
單鏈表的增刪查改
本篇部落格主要介紹c資料結構中的單鏈表有關的增刪查改操作,並且介紹列表的快慢指標,鍊錶的逆置和合併等用法,廢話不說直接上 pragma once include include include typedef int datetype typedef struct plistnode plistno...
單鏈表的增刪查改
鍊錶是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。每個結點包括兩個部分 資料域和指標域 特點 1 可以方便的進行擴充。2 可以方便的刪除和插入。例子如下 include i...