由于前边的博客写了单链表链表的一些函数,循环链表中一些函数与单链表相同,顾只介绍了创建循环链表和读取的方法。方法比较单间,但是可以更加深入的理解循环链表。
// 循环链表.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
struct rollLink
{
int data;
struct rollLink *next;
};
rollLink *createLink()
{
struct rollLink *head=new rollLink;
head->data=-1;
struct rollLink *node=new rollLink;
cin>>node->data;
head->next=node;
struct rollLink *l=node;
while(node->data!=0)
{
node=new rollLink;
cin>>node->data;
l->next=node;
l=node;
}
node->next=head;
return head;
}
void print(rollLink *head)
{
head=head->next;
while(head->data!=-1)
{
cout<<head->data<<endl;
head=head->next;
}
}
void printRoll(rollLink *head,int times)/*读取times次链表*/
{
head=head->next;
int i=0;
while(i!=times)
{
if(head->data==-1) i++;
cout<<head->data<<endl;
head=head->next;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
rollLink *link=createLink();
print(link);
printRoll(link,2);
return 0;
}