zoukankan      html  css  js  c++  java
  • 7-19 求链式线性表的倒数第K项(20 分)(单链表定义与尾插法)

    给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。

    输入格式:

    输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。

    输出格式:

    输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL

    输入样例:

    4 1 2 3 4 5 6 7 8 9 0 -1
    

    输出样例:

    7

    解题思路:寻找倒数第K项,这里所用的方法是定义两个指针,让第一个指针先走k步,然后两个指针一起移动,第一个指针移到末尾的时候,第二个指针就到了倒数第K个位置,输出第二个指针的值即可。

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 
     4 typedef struct LNode{
     5     int data;
     6     struct LNode *next;
     7 }LNode,*LinkList;
     8 
     9 int main()
    10 {
    11     int temp;
    12     int k,cnt=0;
    13     LinkList L;
    14     L = (LinkList)malloc( sizeof ( struct LNode));
    15     LNode *s=L,*r=L,*p;
    16 
    17     scanf("%d",&k);
    18     int f=k;   //保护k的值
    19     while(1){
    20         scanf("%d",&temp);
    21         if( temp<0 ){
    22             break;
    23         }
    24         else{
    25             p=(LNode *)malloc(sizeof(LNode));
    26             p->data = temp;  
    27             r->next = p;  
    28             r = p;
    29             k--;
    30             cnt++;
    31             if( k<1){
    32                 s= s->next;
    33             }
    34         }
    35     }
    36     if( f>cnt){
    37         printf("NULL");
    38     }
    39     else printf("%d",s->data);
    40 
    41      return 0;
    42 }
    在这个国度中,必须不停地奔跑,才能使你保持在原地。如果想要寻求突破,就要以两倍现在速度奔跑!
  • 相关阅读:
    Hamming Distance
    变量
    Jupyter Notebook 快捷键使用指南
    XPath使用总结
    selenium调用webdriver异常
    漏洞挖掘 | 远程WWW服务支持TRACE请求
    漏洞挖掘 | 点击劫持
    漏洞挖掘 | 目录浏览漏洞
    漏洞挖掘 | 弱口令漏洞
    浅谈Linux下/etc/passwd文件
  • 原文地址:https://www.cnblogs.com/yuxiaoba/p/8370700.html
Copyright © 2011-2022 走看看