链表

#include "stdio.h"
#include"stdlib.h"

typedef struct Node
{
    int data;  
    struct Node *next;  
}Linklist;
 
Linklist *InitList(Linklist *L)    
{
    L = (Linklist *) malloc(sizeof(Linklist));
    L->next = NULL;
    return L;
}
Linklist *CreateList()
{
   
    int x;
    Linklist *L,*r,*p;
    L = InitList(L); 
    r = L;
    while(1)
    {
  scanf("%d",&x);
        p = (Linklist *)malloc(sizeof(Linklist));
        p -> data = x;
        p -> next = NULL;
        r->next = p;
        r = r->next;    
  if( getchar()=='\n')
  {
   break;
  }
    }
    return L;
}
void connect(Linklist *L,Linklist *S){
 Linklist *p;
 for(p=L;p->next!=NULL;p=p->next);
 p->next = S->next;

}
void output(Linklist *L) 
{
    Linklist *p,*temp;
 int t;
    p = L->next;
  for (temp = L->next; temp->next != NULL; temp = temp->next){
        for (p = L->next; p->next != NULL; p = p->next){
            if (p->data > p->next->data){
                t = p->data;
                p->data = p->next->data;
                p->next->data = t;
            }
        }
    }
 p = L->next;
 for(;p!=NULL;p=p->next)
    {
        printf("%d ",p->data);
    }
 printf("\n");
}
void put(Linklist *L)
{
  Linklist *p;
  p = L->next;
 for(;p!=NULL;p=p->next)
    {
        printf("%d ",p->data);
    }
 printf("\n");
}
void change(Linklist *L,Linklist *S)
{
  Linklist *p,*q,*tmp;
  p = L->next->next;
  q = S->next->next->next ;

 tmp = S->next->next->next->next ;
  q->next = L->next->next->next ;
  L->next->next = q;
 
  

  p->next = tmp ;
  S->next->next->next= p;
} 
int main()
{

    Linklist *L,*S;
    L = CreateList();
 S = CreateList();
    output(L);
 output(S);
 change(L,S);
 put(L);
 put(S);
 

}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容