⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chengjibiao.txt

📁 C语言程序
💻 TXT
字号:
#include <stdio.h>
#include <stdlib.h>
typedef struct student{
       int number;
       struct student * next;
       }LNode,*Link_list;
void Creat_list(Link_list &L,int n){         //創建鏈表 
        L=(Link_list)malloc(sizeof(LNode));
        L->next=NULL;  Link_list p;
        for(int i=n;i>0;i--){
                p=(Link_list)malloc(sizeof(LNode));
                scanf("%d",&p->number);
                p->next=L->next;
                L->next=p;
                }
}
void Creat_list_l(Link_list &L,Link_list &L1){         //創建鏈表 
        L1=(Link_list)malloc(sizeof(LNode));
        L1->next=NULL;  Link_list p,p1=L->next;
        while(p1){
                p=(Link_list)malloc(sizeof(LNode));
                p->number=p1->number;
                p1=p1->next;
                p->next=L1->next;
                L1->next=p;
                }
}
void Print_list(Link_list L){              //輸出鏈表 
     Link_list p=L->next;
     while(p){
              printf("%d  ",p->number);
              p=p->next;
              }
     printf("\n");
}
void merglist(Link_list La,Link_list Lb,Link_list &Lc)
{
    Link_list pa,pb,pc;
    pa=La->next;
    Lc=pc=La;
    while(pa)
    {
        pb=Lb->next;
        while(pb){
                  if(pa->number==pb->number){
                                        pc->next=pa;   pc=pa;   pa=pa->next;  break;
                                        }
                  pb=pb->next;
            }
         if(!pb)
                pa=pa->next;
   }
   pc->next=NULL;
    //free(Lb);

}
void Mergelist(Link_list La,Link_list Lb,Link_list &Lc){    //對兩個鏈表合并 
     Link_list pa=La->next;
     Link_list pb=Lb->next,pc;
     Lc=pc=La;
     while(pa&&pb){
                   if(pa->number<pb->number){
                                              pc->next=pa;pc=pa;pa=pa->next;
                                              }
                   else
                       if(pa->number==pb->number){
                                                  pc->next=pa;   pc=pa;   pa=pa->next;   pb=pb->next;
                                                  } 
                   else{
                   pc->next=pb;pc=pb;pb=pb->next;
                   }
                   }
     pc->next=pa?pa:pb;
     //free(Lb);
}
int main(){
    printf("請輸入學生個數n:");
    int n; Link_list L1,L2,L3,L4,L5;
    scanf("%d",&n);
    printf("\n请为链表一输入n个数据:\n");
    Creat_list(L1,n);
    printf("\n请为链表二输入n个数据:\n");
    Creat_list(L2,n);
    Print_list(L1);
    Print_list(L2);
    printf("\n兩鏈表的并集為:\n");
    Mergelist(L1,L2,L3); 
    Print_list(L3);
    system("pause");
    printf("\n两链表的交集为:\n");
     merglist(L1,L2,L5);
     Print_list(L5);
    printf("\n將合并的鏈表倒置:\n"); 
    Creat_list_l(L3,L4);
    Print_list(L4);
    system("pause");
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -