展开全部
我现在在别人电脑上,没有编译器,没法测试,先写了第1个程序。等明天在自己电脑上再写第2个吧。
1.
#include "stdio.h"
#include "stdlib.h"
typedef struct LNode{
int data;
struct LNode *next;
}LNode;
LNode *R=NULL;
void Insert(int e)
{
LNode *temp=(LNode *)malloc(sizeof(LNode));
temp->data=e;
if(R==NULL)
{
R=temp;
temp->next=R;
}
else
{
temp->next=R->next;
R->next=temp;
R=temp;
}
}
void print()
{
if(R!=NULL)
{
LNode *p=R;
do
{
p=p->next;
printf("%d ",p->data);
}while(p!=R);
}
}
void DeletePreR()
{
if(R!=NULL)
{
if(R->next==R)
{
free(R);
R=NULL;
}
else
{
LNode *p=R->next,*q;
while(p->next->next!=R)
p=p->next;
q=p->next;
p->next=q->next;
free(q);
}
}
}
void main()
{
int a;
scanf("%d',&a);
while(a!=0)
{
Insert(a);
scanf("%d",&a);
}
print();
DeletePreR();
print();
}
1.
#include "stdio.h"
#include "stdlib.h"
typedef struct LNode{
int data;
struct LNode *next;
}LNode;
LNode *R=NULL;
void Insert(int e)
{
LNode *temp=(LNode *)malloc(sizeof(LNode));
temp->data=e;
if(R==NULL)
{
R=temp;
temp->next=R;
}
else
{
temp->next=R->next;
R->next=temp;
R=temp;
}
}
void print()
{
if(R!=NULL)
{
LNode *p=R;
do
{
p=p->next;
printf("%d ",p->data);
}while(p!=R);
}
}
void DeletePreR()
{
if(R!=NULL)
{
if(R->next==R)
{
free(R);
R=NULL;
}
else
{
LNode *p=R->next,*q;
while(p->next->next!=R)
p=p->next;
q=p->next;
p->next=q->next;
free(q);
}
}
}
void main()
{
int a;
scanf("%d',&a);
while(a!=0)
{
Insert(a);
scanf("%d",&a);
}
print();
DeletePreR();
print();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询