zoukankan      html  css  js  c++  java
  • 【100题】第十三题(输出倒数第k个节点)

    一,题目:输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。

    二,分析:这是某一年的考研试题中,数据结构的一个题。题目本身难度不大。

    三,思路:设置两个指针p1,p2;

                        p1=head;       p2=head;

                        先让p2向前走k步,然后同时让p1,p2向后走。

                        当p2走到头的时候,p1所指的节点就是所求节点。

    四,源码:

    #include "stdio.h"
    #include "malloc.h"
    struct node
    {
    	int data;
    	node *next;
    };
    node* fun(node *head,int k)
    {
    	node *p1,*p2;
        p1 = p2 = head;
        for(int i=0;i<k;i++)//让第二个指针向后走k步 
            p2=p2->next;
        while(p2!=NULL)
        {
            p1=p1->next;
            p2=p2->next;
        }
        return p1;
    }
    int main()
    {
        int c;
        node *head,*p,*q;
        head = (node*)malloc(sizeof(node));
        head->next = NULL;
        p = head;
        printf("请输入数字,以输出0为结尾\n"); 
        scanf("%d",&c);
        while(c!=0)
        {
            q = (node*)malloc(sizeof(node));
            q->data = c;
            
            q->next = NULL;
            p->next = q;
            p = p->next;
            scanf("%d",&c);
            //c = getchar();
        }
        printf("-------输出第二个数--------\n");
        printf("%d\n",fun(head,2)->data);
        //cout<<"---------------"<<endl;
        //cout<<fun(head,2)->data<<endl;
        return 0;
    }
    



  • 相关阅读:
    【软件工程】个人项目作业
    【软件工程】个人博客作业
    【软件工程】第一次作业-热身!
    OO第四单元总结
    OO第三单元总结
    OO第二单元总结
    OO第一单元总结
    提问回顾与个人总结
    [技术博客] Django中文件的保存与访问
    OO第三单元博客作业
  • 原文地址:https://www.cnblogs.com/secbook/p/2655060.html
Copyright © 2011-2022 走看看