【面试算法系列】逆序输出一个单链表 - C语言实现
来源:互联网 发布:如何制作淘宝店招图片 编辑:程序博客网 时间:2024/05/17 04:21
将一个单链表的内容逆序输出,考虑到当一个链表的元素打印之前将该元素的前一个元素打印,运用这个思路可以使用递归来实现该功能,(不过该方法仍然存在,问题,当链表过长会导致栈溢出问题)代码如下:
</pre><pre name="code" class="cpp">/* * File: main.c * Author: Kyle * * Created on 2015年9月7日, 下午2:34 */#include <stdio.h>#include <stdlib.h>typedef int Item; //定义数据项类型 /* *单链表,结构体 */typedef struct node { Item item; //数据域 struct node* next; //链域 } Node;void Add2Tail(Node** pHead, int value) { //链表末尾添加一个元素 Node *p = (Node *) malloc(sizeof (Node)); p->item = value; p->next = NULL; if (*pHead == NULL) { *pHead = p; } else { Node *temp = *pHead; while (temp->next != NULL) { temp = temp->next; } temp->next = p; }}void Reversing_Output_List(Node* list) { //递归方法,逆序输出一个链表内容 if (list != NULL) { if (list->next != NULL) { Reversing_Output_List(list->next); } printf("%d,", list->item); }}int main() {/*** 2.面试题5 逆序输出一个链表内容*/ Node *p = NULL; Add2Tail(&p, 4); Add2Tail(&p, 56); Add2Tail(&p, 6); Add2Tail(&p, 7); Add2Tail(&p, 9); Add2Tail(&p, 3); Add2Tail(&p, 1); Add2Tail(&p, 66); Add2Tail(&p, 24); Reversing_Output_List(p); return (EXIT_SUCCESS);}
0 0
- 【面试算法系列】逆序输出一个单链表 - C语言实现
- C语言实现单链表逆序与逆序输出实例
- C语言关于字符串逆序输出---面试
- 用c语言实现单链表的逆序输出
- c语言实现字符串的逆序输出
- C语言 逆序输出单链表(递归)
- (c语言)输入一个整数,将其逆序输出
- 关于c语言逆序输出
- 【C语言】逆序输出字符串
- C语言简单递归实现字符串逆序输出
- C语言实现对字符串的逆序输出
- 【面试算法系列】冒泡排序与快速排序 - C语言实现
- 【面试算法系列】替换字符串中的空格为其他字符 - C语言实现
- 【C语言】写一个函数,实现字符串内单词逆序
- C语言 逆序一个数组的代码实现
- 利用递归函数逆序一个栈(C语言实现)
- c语言实现字符串逆序
- C语言实现逆序数
- PAT-A | 1003 | Emergency
- BZOJ 2178 圆的面积并 Simpson积分
- leetcode--Find Minimum in Rotated Sorted Array --C++
- gridview 实现横向分页滑动效果的两种实现方案
- 【第四篇章-android平台MediaCodec】根据编码类型MIME_TYPE获取MediaCodecInfo
- 【面试算法系列】逆序输出一个单链表 - C语言实现
- 彩票摇奖
- Binary Tree Zigzag Level Order Traversal
- 常量指针和指针常量的区别
- SQL Server学习记录之存储过程
- 整数中1出现的次数(从1到n整数中1出现的次数)
- GitHub 优秀的 Android 开源项目
- 数据库中索引原理(超经典)(附链接)
- java动态加载jar包,并运行其中的类和方法 (jar是与平台无关的文件格式)