zoukankan      html  css  js  c++  java
  • 5-19 求链式线性表的倒数第K项 (20分)

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

    输入格式:

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

    输出格式:

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

    输入样例:

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

    输出样例:

    7


     1 #include <stdio.h>
     2 
     3 typedef struct Node
     4 {
     5     int data;
     6     struct Node * next;
     7 }Node, * linkList;
     8 
     9 
    10 void InitList(linkList *p)
    11 {
    12     (*p) = (linkList)malloc(sizeof(Node));
    13     (*p)->next = NULL;
    14 }
    15 
    16 void creat(linkList L)
    17 {
    18     Node *s;
    19     int num, flag = 1;
    20     while(flag)
    21     {
    22         scanf("%d", &num);
    23         if(num >= 0)
    24         {
    25             s = (linkList)malloc(sizeof(Node));
    26             s->data = num;
    27             s->next = L->next;
    28             L->next = s;
    29         }
    30         else
    31         {
    32             flag = 0;
    33         }
    34     }
    35 }
    36 
    37 void printNum(linkList L, int n)
    38 {
    39     Node *p = L->next;
    40     int i = 0;
    41     while(p != NULL && i < n - 1)
    42     {
    43         p = p->next;
    44         i++;
    45     }
    46     if(p != NULL)
    47         printf("%d
    ", p->data);
    48     else
    49         printf("NULL
    ");
    50 
    51 }
    52 
    53 int main()
    54 {
    55     Node *p;
    56     int n;
    57     scanf("%d", &n);
    58     InitList(&p);
    59     creat(p);
    60     printNum(p, n);
    61     return 0;
    62 }
  • 相关阅读:
    collections queue、os、datetime,序列化(json和pickle)模块
    re模块和正则
    模块介绍
    迭代器,生成器,生成器表达式,常用内置方法
    交互式shell和非交互式shell的区别
    /usr 的由来及/usr目录结
    Hadoop
    联通、联在中文机器上乱码问题
    正斜杠与反斜杠
    java中static关键字解析
  • 原文地址:https://www.cnblogs.com/hello-lijj/p/7096146.html
Copyright © 2011-2022 走看看