单循环链表 合并

#include<stdio.h>
#include<stdlib.h>
#define LEN sizeof(struct node)
typedef int datatype;
typedef struct node
{
    datatype data;
    struct node *next;
}linklist;
//用尾指针表示带头结点的单循环链表的建立: 
linklist *hcirl_creat()
 {int x;
  linklist *head,*p,*rear;
  head=(struct node*)malloc(LEN);
  head->data=-999;
  rear=head;
  printf("\n\t请输入整数以0结尾\n");
  scanf("%d",&x);
  while(x!=0)
  {p=(struct node*)malloc(LEN);
   p->data=x;
   rear->next=p;
   rear=p;
   scanf("%d",&x);
   }
   rear->next=head;
   return rear;}

//单循环链表的遍历运算
 void  print_circular( linklist *rb)

 {linklist *p,*head;
  int m=0;
  head=rb->next;
  p=head->next;
  while(p!=head)
  { printf("%5d",p->data);
    p=p->next;
    m++;
    if((m+1)%10==0) printf("\n");
    
   }printf("\n");
   }
    //建立两个用尾指针表示的带头结点的单循环链表A和B 输出A和B 再利用原空间将B链接到A后 合成C 并输出C
     void main()
    { 
     linklist *ra,*rb,*rc,*head;
     ra=hcirl_creat();
     rb=hcirl_creat();
     head=ra->next;
     ra->next=rb->next->next;
     free(rb->next);
     rb->next=head;
     rc=rb;
     print_circular(rb);

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值