一下全是我自己手工写的,VS中测试通过
#include
using namespace std;
typedef struct tagListNode
{
long data;
tagListNode *next;
tagListNode()
{
data = 0;
next = NULL;
}
}Node, *PNode;
class List
{
public:
List(long n);
~List();
private:
long num;
Node *Plist;
public:
void insert(Node node);
long remove(Node node);
PNode get(long n);
long get(Node node);
};
// 构造函数
List::List(long n)
{
num = n;
Plist = NULL;
}
List::~List()
{
}
void List::insert(Node node)
{
if (Plist == NULL)
{
Plist = new Node;
Plist->data = node.data;
Plist->next = NULL;
}
else
{
PNode p = new Node;
p->data = node.data;
p->next = Plist;
Plist = p;
}
num++;
}
long List::remove(Node node)
{
PNode pre = Plist;
PNode p = Plist->next;
PNode q;
long ret = 1;
if (Plist->data == node.data)
{
q = Plist;
Plist = Plist->next;
delete q;
q = NULL;
}
else
{
while(p)
{
ret++;
if (p->data == node.data)
{
q = p;
pre->next = p->next;
p = p->next;
delete q;
q = NULL;
break;
}
pre = pre->next;
p = p->next;
}
}
return ret;
}
PNode List::get(long n)
{
if (n<1 || n>num)
return NULL;
PNode p = Plist;
n--;
while(n--)
{
p = p->next;
}
return p;
}
long List::get(Node node)
{
PNode p = Plist;
long ret = 0;
while(p)
{
ret++;
if (p->data == node.data)
{
break;
}
p = p->next;
}
return ret;
}
// 定义主函数
void main()
{
List obj(0);
Node node;
node.data = 10;
obj.insert(node);
node.data = 20;
obj.insert(node);
long n = obj.get(node);
PNode p = obj.get(1);
long ret = obj.remove(node);
getchar();
}
给你推荐一个不错的网站,卓创威客网,去看看把,最短的时间会哟很多稿件提交,选择你自己喜欢的