zoukankan      html  css  js  c++  java
  • 基础实验3-2.3 共享后缀的链表 (25分)

    有一种存储英文单词的方法,是把单词的所有字母串在一个单链表上。为了节省一点空间,如果有两个单词有同样的后缀,就让它们共享这个后缀。下图给出了单词“loading”和“being”的存储形式。本题要求你找出两个链表的公共后缀。

    fig.jpg

    函数接口定义:

    PtrToNode Suffix( List L1, List L2 );
    
     

    其中List结构定义如下:

    typedef struct Node *PtrToNode;
    struct Node {
        ElementType Data; /* 存储结点数据 */
        PtrToNode   Next; /* 指向下一个结点的指针 */
    };
    typedef PtrToNode List; /* 定义单链表类型 */
    
     

    L1L2都是给定的带头结点的单链表。函数Suffix应返回L1L2的公共后缀的起点位置。

    PtrToNode Suffix( List L1, List L2 )
    {
        List p1 = L1->Next;
        List p2 =L2->Next;
        int len1=0,len2 =0;
        List tmp = p1;
        while (tmp)//表1长度
        {
            tmp = tmp->Next;
            len1++;
        }
        tmp = p2;
        while(tmp)//the length of List2
        {
            tmp = tmp->Next;
            len2++;
        }
    
        while(len1>len2)//
        {
            p1 = p1->Next;
            len1--;
        }
    
        while(len1<len2)
        {
            p2 = p2->Next;
            l2n2--;
        }
    
        while (p1)//find the same Node;
        {
            if(p1==p2)
                return p1;//return the pointer of the node whitch have the same address 
            else
            {
                p1 = p1->Next;
                p2 = p2->Next;
            }
        }
    
        return NULL;
    }
  • 相关阅读:
    contes配置nginx教程
    jquery 图片放大镜,草稿版
    VUE学习第四次
    VUE学习 第三次
    ryu
    ovs & ryu & mininet
    centos安装mininet 和卸载
    端口镜像
    数据中心网络监控小结
    5、Kafka生产过程分析
  • 原文地址:https://www.cnblogs.com/qinmin/p/12542562.html
Copyright © 2011-2022 走看看