【发布时间】:2011-06-06 17:15:51
【问题描述】:
我正在尝试实现一个简单的链接列表。初始值插入成功,但下一个元素没有正确输入。请帮我解决错误是什么。感谢赞赏。
#include<iostream>
using std::cout;
class node
{
public:
node():next(0){}
void setNext(node *next){ next = next; }
node* getNext(){ return next; }
void setValue(int val){ value = val; }
int getValue(){ return value; }
private:
int value;
node *next;
};
class list
{
public:
list():head(new node()),len(0){}
bool insert(int value);
//bool remove(int value);
int valueAt(int index);
int length();
private:
node *head;
int len;
};
bool list::insert(int value)
{
node *current = 0;
node *previous = 0;
node *temp = 0;
temp = new node();
temp->setValue(value);
current = head;
previous = head;
while((temp->getValue())>(current->getValue()))
{
previous = current;
current = current->getNext();
if(!current)
{
break;
}
}
if(current == head)
{
temp->setNext(current);
head = temp;
len++;
}
else
{
temp->setNext(current);
previous->setNext(temp);
len++;
}
}
int list::valueAt(int index)
{
if((index < len) && (index >= 0))
{
node *current = 0;
current = head;
int count = 0;
while(count < index)
{
current = current->getNext();
count++;
}
return (current->getValue());
}
else
{
return -1;
}
}
int main()
{
list myList;
myList.insert(5);
myList.insert(20);
myList.insert(10);
cout<<"Value at index 1 : "<<myList.valueAt(1);
return 0;
}
【问题讨论】:
-
这是作业吗?它确实看起来像。如果是这种情况,您应该这样标记您的问题。
-
@David 不要这么快就谴责这是作业,有些人只是喜欢练习,链表特别有趣。
-
如果您的问题已解决,请接受答案
标签: c++ linked-list