#include"stdio.h"
#include"stdlib.h"
typedef int elemtype;
typedef struct Lnode{
struct Lnode *next;
elemtype data;
}Lnode,*Linklist;
//创建
void creat(Linklist &L,int n)
{
Linklist r,s;
L=(Linklist)malloc(sizeof(Lnode));
L->next=NULL;
printf("请输入链表值:\n");
scanf("%d",&L->data);
r=L;
int i;
for(i=1;i<n;i++)
{
s=(Linklist)malloc(sizeof(Lnode));
scanf("%d",&s->data);
r->next=s;
s->next=NULL;
r=s;
}
r->next=L;
}
//循环链表输出
void traversal(Linklist &L,int n)
{
Linklist p,q;
p=L;
int i=1;
q=p;
while(p&&i<n)
{
p=p->next;
q=p;
i++;
}
while(p)
{
printf("%d ",p->data);
p=p->next;
if(p==q)break;
}
printf("\n");
}
void main()
{
Linklist L;
int n,m;
printf("请输入要创建的链表的个数\n");
scanf("%d",&n);
creat(L,n);
printf("请输入指定的结点序号:\n");
scanf("%d",&m);
traversal(L,m);
}
编写算法创建一个带头结点的单向循环链表la={a1,a2,...an},并从指定的结点序号起输出循环链表。
最新推荐文章于 2022-02-18 22:31:19 发布