#include<cmath>
#include<iostream>
#include<cstdio>
using namespace std;
//循环链表的创建
typedef struct circular_lnode{
int data;
struct circular_lnode *next;
}circular_lnode,*circular_linklist;
void creat_cir_londe(circular_linklist &l,int n){
l=(circular_linklist)malloc(sizeof(circular_lnode));//创建还是要给头指针申请空间的
circular_linklist q,head;
l->next=NULL;//l为头结点,利用尾插法进行
head=l;//保留l的值为了连成循环链表
for(int i=1;i<=n;i++){
q=(circular_linklist)malloc(sizeof(circular_lnode));
cin>>q->data;
q->next=head->next;
head->next=q;
head=q;
}
q->next=l;
}
//循环链表的插入和删除操作类似与单链表,有兴趣可以看博主上一篇文章
void printf_list1(circular_linklist l){
circular_linklist q;
q=l->next;
while(q->next!=l->next){//输出条件,
cout<<q->data<<" ";
q=q->next;
}
cout<<endl;
}//循环链表的输出
int main(int argc, char const *argv[]) {
circular_linklist l;
cout<<"___________________________________"<<endl;
creat_cir_londe(l,10);
cout<<"___________________________________"<<endl;
printf_list1(l);
return 0;
}
循环链表的创建(尾插法)以及循环链表的输出条件
最新推荐文章于 2024-06-25 07:11:52 发布