zoukankan      html  css  js  c++  java
  • 求两个有序单链表的并交集

    求并集————————————————————————————

    #include <iostream>
    #include "./List.h"//利用我们自己实现的单链表List
    using namespace std;
    
    void PrintList(List L)
    {
         if(NULL == L) return;
         Position pos = First(L);
         cout<<"List L:";
         while(NULL != pos)
         {
              cout<<Retrieve(pos)<<"->";
              pos = pos->next;
         }
         cout<<"NULL"<<endl;;
    }
    List UnionOfTwoLists(List list1, List list2)
    {
         if(NULL == list1  && NULL == list2) return NULL;
         Position p1 = First(list1), p2 = First(list2);
         List out = CreateEmptyList();
         while(NULL != p1 && NULL != p2)
         {
              if(Retrieve(p1) <= Retrieve(p2))
              {
                   PushBack(Retrieve(p1), out);
                   p1 = p1->next;
              }
              else
              {
                   PushBack(Retrieve(p2), out);
                   p2 = p2->next;
              }
         }
         if(NULL == p1)
         {
              while(NULL != p2)
              {
                   PushBack(Retrieve(p2), out);
                   p2 = p2->next;
              }
         }
         else if(NULL == p2)
         {
              while(NULL != p1)
              {
                   PushBack(Retrieve(p1), out);
                   p1 = p1->next;
              }
         }
         return out;
    }
    int main(int argc, char const *argv[])
    {
         List list1 = CreateEmptyList();
         List list2 = CreateEmptyList();
         for (int i = 0; i < 10; ++i)
              PushBack(i, list1);
         for (int i = 0; i < 20; i += 2)
              PushBack(i, list2);
         PrintList(list1);
         PrintList(list2);
         List res = UnionOfTwoLists(list1, list2);
         PrintList(res);
         return 0;
    }
    

      

    求交集——————————————————————————————
    #include <iostream>
    #include "./List.h"//利用我们自己实现的单链表List
    using namespace std;
    
    void PrintList(List L)
    {
         if(NULL == L) cout<<"Error List L is NULL!!!"<<endl;
         Position pos = First(L);
         cout<<"List L:";
         while(NULL != pos)
         {
              cout<<Retrieve(pos)<<"->";
              pos = pos->next;
         }
         cout<<"NULL"<<endl;;
    }
    List IntersectionOfTwoLists(List list1, List list2)
    {
         if(NULL == list1  && NULL == list2) return NULL;
         Position p1 = First(list1);
         List out = CreateEmptyList();
         while(NULL != p1)
         {
              Position tmp = Find(Retrieve(p1), list2);
              if(NULL != tmp)
                   PushBack(Retrieve(tmp), out);
              p1 = p1->next;
         }
         return out;
    }
    int main(int argc, char const *argv[])
    {
         List list1 = CreateEmptyList();
         List list2 = CreateEmptyList();
         for (int i = 0; i < 20; ++i)
              PushBack(i, list1);
         for (int i = 0; i < 20; i += 2)
              PushBack(i, list2);
         PrintList(list1);
         PrintList(list2);
         List res = IntersectionOfTwoLists(list1, list2);
         PrintList(res);
         return 0;
    }
  • 相关阅读:
    Oracle中关于数据库实例名与数据库服务名(转载)
    将集成spring的项目从tomcat上移植到weblogic下存在的问题
    python实例编写(1)--浏览器操作,元素操作
    python webdriver 环境搭建详解
    定位页面元素之xpath详解以及定位不到测试元素的常见问题
    Appium (win7系统)环境搭建----完整版
    SQL基础巩固
    软件测试发展规划
    自动化测试之 seleniumIDE,Selenium1,selenium2和testNG入门
    Android --- 读取系统资源函数getResources()小结
  • 原文地址:https://www.cnblogs.com/zxh1210603696/p/3194608.html
Copyright © 2011-2022 走看看