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

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

    输入格式:

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

    输出格式:

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

    输入样例:

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

    输出样例:

    7

    代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    typedef struct Node *Node;
    struct Node
    {
        int data;
        Node Next;
    };
    int main()
    {
        int n,d,c = 0;
        scanf("%d",&n);
        Node temp = (Node)malloc(sizeof(struct Node)),q;
        temp -> Next = NULL;
        q = temp;
        while(scanf("%d",&d)!=EOF&&d >= 0)
        {
            Node p = (Node)malloc(sizeof(struct Node));
            p -> data = d;
            p -> Next = NULL;
            q -> Next = p;
            q = p;
            c ++;
            if(c >= n)
            {
                Node t = temp;
                temp = temp -> Next;
                free(t);
            }
        }
        if(c >= n)printf("%d",temp -> data);
        else printf("NULL");
    }
  • 相关阅读:
    设计数据库步骤
    sql练习题
    多表连接查询
    数据约束
    管理并行SQL执行的进程
    关于Oracle数据库后台进程
    配置数据库驻留连接池
    为共享服务器配置Oracle数据库
    关于数据库驻留连接池
    关于专用和共享服务器进程
  • 原文地址:https://www.cnblogs.com/8023spz/p/7702412.html
Copyright © 2011-2022 走看看