zoukankan      html  css  js  c++  java
  • 从尾部到头部打印链表

    从尾部到头部打印链表,由于递归,比较简单,所以方法1,使用递归,

    #include<stdio.h>
    #include<stdlib.h>
    #include<stack>
    struct LinkNode {
        int data;
        struct LinkNode *next;
    };
    
    struct LinkNode *createList()
    {
        int len = 0;
        printf("input list len\n");
        scanf("%d", &len);
        printf("input list elements\n");
        struct LinkNode *head = NULL;
        struct LinkNode *p = head;
        for (int i = 0; i < len; i++) {
    	int k;
    	scanf("%d", &k);
    	struct LinkNode *e = (LinkNode *) malloc(sizeof(LinkNode *));
    
    	e->data = k;
    	e->next = NULL;
    	if (head == NULL) {
    	    p = head = e;
    	    continue;
    	}
    	p->next = e;
    	p = p->next;
    
        }
        return head;
    }
    
    void printLinkList(struct LinkNode *head)
    {
        if (head == NULL) {
    	return;
        }
        printLinkList(head->next);
        printf(" %d ", head->data);
    }
    
    void printLinkByStack(struct LinkNode *head)
    {
        std::stack < struct LinkNode *>st;
        if (head == NULL) {
    	return;
        }
        struct LinkNode *p = head;
        while (p != NULL) {
    	st.push(p);
    	p = p->next;
        }
    
        while (!st.empty()) {
    	struct LinkNode *e = st.top();
    	st.pop();
    	printf(" %d", e->data);
        }
        printf("\n");
    }
    
    
    int main()
    {
        struct LinkNode *head = NULL;
        head = createList();
        printf("recursion\n");
        printLinkList(head);
        printf("\n");
    
        printf("stack");
        printLinkByStack(head);
        printf("\n");
    
    }
    
    

    使用递归的时候,当链表的长度过长的时候,

    回造成调用栈的溢出,

    作者: 盛夏落木

    出处: https://www.cnblogs.com/wanshuafe/

    关于作者:专注云存储,文件系统领域,请多多赐教!

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(wanshuafe@163.com)咨询.

  • 相关阅读:
    C学习笔记-typedef
    C学习笔记-typedef
    C语言之联合体
    C语言之联合体
    Browsersync 省时浏览器同步测试工具,浏览器自动刷新,多终端同步
    Gulp学习指南之CSS合并、压缩与MD5命名及路径替换
    es6 添加事件监听
    珠峰
    js添加触摸时间,禁止页面缩放
    百度地图叠加扇形区域,也可以做成异性区域
  • 原文地址:https://www.cnblogs.com/wanshuafe/p/11553393.html
Copyright © 2011-2022 走看看