单链表第十六题(判断是否是子序列)

 16.两个整数序列A=a1,a2,a3,....am和B=b1,b2,b3,....bn已经存入两个单链表中,

    设计一个算法,判断序列B是否是序列A的连续子序列。

/*

   存在两个单链表序列A,B,设计函数判断是否为A的子序列。

   分析:

                最直接的方法:循环遍历,从A链的第一个元素开始与B链对比,

 如遇见不同,从A链下一个又开始,直至到达链尾

*/

#include<stdio.h>

#include"linkStruct.h"//通过自创建头文件引入结构体,ctrl+鼠标左键即可查看

void  subList(Link  *a,Link  *b){

            Link  *la=a,*pA=la->next,*pB=b->next;

             while(paA&&pB){

                      if(pA->data==pB->data){

                           pA=pA->next;

                            pB=pB->next;

                    }

                  else{

                          pB=b->next;//pb从头开始与pa对比

                           la=la->next;//失败一次,la往后移动一个节点

                           pA=la->next;//pa从下个节点又开始

                           }

              }

             pB==NULL?printf("true"):printf("false");//如果pb为NULL说明已比对完成

}

int   main(){

           Link   *a,*b;

           Link   *createLink(int);

            a=createLink(0);

            b=createLink(0);

            subList(a,b);

            return     0;    

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一篇 面试 ................................................................................ 8 1.1. 简介 ............................................................................................................... 8 1.2. 面试集合(一) .......................................................................................... 8 1.2.1. 把二元查找树转变成排序的双向链表.................................................... 8 1.2.2. 下排每个数都是先前上排那十个数在下排出现的次数 ..........................11 1.2.3. 设计包含 min 函数的栈 ...................................................................... 14 1.2.4. 求子数组的最大和.............................................................................. 20 1.2.5. 在二元树找出和为某一值的所有路径 .............................................. 22 1.2.6. Top K 算法详细解析---百度面试 ......................................................... 29 1.2.7. 翻转句子单词的顺序....................................................................... 31 1.2.8. 判断整数序列是不是二元查找树的后序遍历结果 ................................ 33 1.2.9. 查找最小的 K 个元素-使用最大堆....................................................... 35 1.2.10. 求二叉树节点的最大距离................................................................ 37 1.3. 面试集合(二) ........................................................................................ 40 1.3.1. 求 1+2+…+n....................................................................................... 40 1.3.2. 输入一个单向链表,输出该链表倒数第 k 个结点............................. 44 1.3.3. 输入一个已经按升序排序过的数组和一个数字.................................... 46 1.3.4. 输入一颗二元查找树,将该树转换为它的镜像.................................... 48 1.3.5. 输入一颗二元树,从上往下按层打印树的每个结点,同一层按照从左往 右的顺序打印................................................................................................... 49 1.3.6. 在一个字符串找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b 52 1.3.7. n 个数字(0,1,…,n-1)形成一个圆圈 .................................................. 53 1.3.8. 定义 Fibonacci 数列 ............................................................................ 58 1.3.9. 左移递减数列查找某一个数.........................................

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值