扫描链表B是否为链表A的字序列-20算法2

扫描链表B是否为链表A的字序列

#include <stdio.h>
#include <stdlib.h>

typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode,*LinkList;

bool InitList(LinkList &L)
{
    L=(LNode *)malloc(sizeof(LNode));
    if(L==NULL) return false;
    L->next=NULL; 
 //   L->data=-9999;
    return true;
}

LinkList list_TailInsert(LinkList &L)
{
    InitList(L);
    LNode *s,*r=L;
    int x;
    while(scanf("%d",&x))
    {
        if(x==-1) break;
        s=(LNode *)malloc(sizeof(LNode));
        s->data=x;
        r->next=s;
        r=s;
    }
    r->next=NULL;
    return L;
}

bool Pattern(LinkList &A,LinkList &B)
{
    LNode *p=A->next,*q=B->next,*flag=A->next;
    while(p&&q)
    {
        if(p->data==q->data)
        {
            p=p->next;
            q=q->next;
        }
        else
        {
            flag=flag->next;
            p=flag;
            q=B->next;
        }
    }
    if(q) return false;
    else return true;
    
}


int main()
{
    LinkList A;
    LinkList B;
    list_TailInsert(A);
    list_TailInsert(B);
    printf("%d",Pattern(A,B));//bool型变量可以由%d输出
    //return Pattern(A,B);
    
}
上一篇:Apache Hadoop 2.7如何支持读写OSS


下一篇:4011-基于邻接表的深度优先遍历(C++,取巧做法)