資源簡介
c++實現的單鏈表數據結構,供大家學習數據結構與算法使用
代碼片段和文件信息
#include?
#include?
#include?
using?namespace?std;
#define?MAXSIZE?30
#define?OK?1
#define?ERROR?0
#define?TRUE?1
#define?FALSE?0
using?Statue?=?int;
using?ElemType?=?int;
using?pos?=?int;
struct?Node
{
ElemType?data;
Node?*Next;
}Node;
using?linkList?=struct?Node*;
Statue?GetElem(linkList?Lpos?i?ElemType?*e)
{
pos?j=1;
linkList?p;
p?=L->Next;
while?(p?&&?j {
p?=?p->Next;
++j;
}
if?(!p?||?j>i)
{
return?ERROR;
}
*e?=?p->data;
return?OK;
}
void?CreatListHead(linkList?*L?int?n)
{
linkList?p;
int?i;
srand(time(0));
*L?=?(linkList)malloc(sizeof(Node));
//L?=?new?linkList;
(*L)->Next?=?nullptr;
for?(i?=?0;?i? {
p?=?(linkList)new?struct?Node;
p->data?=?rand()?%?100?+?1;
p->Next?=?(*L)->Next;
(*L)->Next?=?p;
}
}
Statue?ListInsert(linkList?*L?pos?i?ElemType?e)
{
pos?j=1;
linkList?p=*Ls;
while?(p?&&?j {
p?=?p->Next;
++j;
}//p指向第i-1個節點
if?(!p?||?j>i)
{
return?ERROR;
}
s?=?(linkList)malloc(sizeof(Node));
s->data?=?e;
s->Next?=?p->Next;
p->Next?=?s;
return?OK;
}
Statue?LIstDelete(linkList?*L?pos?i?ElemType?*e)
{
pos?j?=?1;
linkList?p??q;
p?=?*L;
while?(p->Next?&&?j {
p?=?p->Next;
++j;
}//p是第i-1個結點
if?(!(p->Next)?||?j>i)
{
return?ERROR;
}
q?=?p->Next;
*e?=?q
- 上一篇:帶測試用例的平衡樹算法
- 下一篇:大地坐標系和空間直角坐標系轉換源代碼
評論
共有 條評論