typedef
struct node node;
class linklist
~linklist();
bool clearsqlist();
bool isempty()
int length();
void getelem(int i, int *e);
int locateelem(int e);
bool priorelem(int cur_e, int *pre_e);
bool nextelem(int cur_e, int *next_e);
bool insert(int i, int e);
bool delete(int i, int *e);
node * reverse();
};
各個函式的作用參見下面的實現注釋
析構函式
//析構函式
linklist::~linklist()//和清空一樣
}
清空函式
bool linklist::clearsqlist()//清空函式,和析構一樣
}
獲取鍊錶長度
//獲取鍊錶長度
int linklist::length()
return
len;
}
獲取指定位置的元素
bool linklist::getelem(int i, int
*e)//*e是返回的元素
if (p == null) return false;
*e = p->data;
return true;
}
查詢元素e在鍊錶什麼位置(下標位置,從0開始)
int linklist::locateelem(int e)
std::cout
<<
"表中不存在指定元素"
<< std::endl;
exit(1);
}
取上乙個元素
bool linklist::priorelem(int cur_e, int *pre_e)
else
p = p->next;
}return
false;//遍歷完不存在或者只有乙個頭結點
}
取下乙個元素
bool linklist::nextelem(int cur_e, int *next_e)
else
p = p->next;
}return
false;
}
在指定位置插入元素e
void linklist::insert(int i, int e)
while (p&&j < i - 1)
if (p == null)
return
false;//到隊尾了
s= (node *)new node[1];
s->data = e;
s->next = p->next;
p->next = s;
return
true;
}
//刪除指定位置的元素,並把刪除的元素賦給*e
bool linklist::delete(int i, int *e)
while (p&&j < i -
1)
if (p ==
null)
return
false;
s = p->next;
p->next = p->next->next;
*e = s->
data;
delete s;
s =null;
return
true;
}
//反轉乙個鍊錶
node* linklist::reverse()
head = p;
return head;
}
#include
#include"linklist.h"
using
namespace
std;
int main()
cout
<< endl;
cout
<< "反轉後各個元素的值是:";
鍊錶C 實現
node.h 第乙個檔案 ifndef node h define node h define true 1 define false 0 define ok 1 define error 0 define null 0 define flag 1 class node endif node h l...
鍊錶c 實現
昨天把鍊錶實現 寫到 寫鍊錶收穫 裡了,今天看了看居然沒有,不知道是沒儲存還是怎麼了,沒辦法,今天就把自己的 再粘一遍吧 對了,是用vs2013編輯的 slnode.cpp include struct slnode slnode const int item,slnode nextnode nul...
C 鍊錶實現
include include include using namespace std typedef int datatype typedef struct node linknode 鍊錶初始化 初始化鍊錶頭部指標需要用二級指標或者一級指標的引用 void linklist init linkn...