zoukankan      html  css  js  c++  java
  • 使用递归将链表中的元素逆序输出

    //问题:使用递归将链表中的元素逆序输出
    //链表递归逆序输出
    #include "stdio.h"
    #include<stdlib.h>
    typedef struct Node{    //结构体
        int data;
        Node *next;
    }Node;


    void init(Node *&p){    //初始化
        p->next = NULL;
    }

    void listCreate(Node *&p,int n){      //参数:头节点,数据
        Node *q = (Node *)malloc(sizeof(Node));
        //****头插法建立(插入)链表*********(后进先出)
        q->data = n;
        q->next = p->next;
        p->next = q;
        //****************
    }

    void Traversal(Node *&p){   //遍历
        Node *q = p->next;
        while (q != NULL)
        {
            printf("%d ",q->data);
            q = q->next;
        }
    }

    //***********核心函数**********************************
    Node *back(Node *p){
        if(p!=NULL){
            back(p->next);//往下递
            printf("%d ",p->data);   //归的同时输出内容

            return p;   //归
        }    
    }
    Node tmp(Node *h){   //back函数如果传进去的是头节点,那么在回归到头结点时也会输出头节点data域的内容,为了让它不输出,所以写个函数让传进去的是第一个节点
        Node *q = h->next;
        back(q);
    }
    //***************************
     
    int main(){
        Node *head = (Node *)malloc(sizeof(Node));
        init(head);
        for(int i=0;i<5;i++){
            listCreate(head,i);
        }
        //Traversal(head);
        change(head);
        getchar();
        return 0;
    }
  • 相关阅读:
    一套完整的测试应该由哪些阶段组成?
    测试结束的标准是什么?
    :你的测试职业发展目标是什么?
    您认为做好测试用例设计工作的关键是什么?
    Servlet API中forward()与redirect()的区别?
    AOP 核心概念?
    Spring 中使用了哪些设计模式?
    ArrayList类?
    如何实现拦截器?
    什么是集合?
  • 原文地址:https://www.cnblogs.com/BreezeFeng/p/13950662.html
Copyright © 2011-2022 走看看