65,187
社区成员




struct ListNode
{
public:
ListNode* rLink;
ListNode* lLink;
int data;
ListNode(int x);
ListNode();
};
ListNode::ListNode(int x)
{
data = x;
}
ListNode::ListNode()
{
data = 0;
}
class List //链表类
{
public:
ListNode* first;
public:
List()
{
first = new ListNode();
first->rLink = first->lLink = first;
}
void Insert(ListNode*,int);
void Display();
};
void List::Insert(ListNode* current, int InsertRight)//往指定结点的右边插入
{
ListNode* temp = new ListNode(InsertRight); //创建结点
temp->rLink = current->rLink;
temp->lLink = current;
current->rLink = temp;
current->rLink->lLink = temp;
}
void List::Display()
{
ListNode* temp = first; //保存
while(true)
{
for(int i = 0;i<=100;++i)
{
printf("结点%d: data=%d,address=%x,rLink_address=%x,lLink_address=%x\
\n",i,first->data,first,first->rLink,first->lLink);
first = first->rLink;
if(first == temp)
break;
}
first = temp; //恢复
break;
}
}
int main(int argc, char* argv[])
{
List p;
p.Insert(p.first,1);
p.Insert(p.first,2);
p.Insert(p.first,3);
p.Insert(p.first,4);
p.Display();
return 0;