做搞笑app好还是做电影网站好,东莞常平健明眼科医院,厦门网站建设ui,哈尔滨网页制作人才招聘#x1f57a;作者#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux算法题上机准备 #x1f618;欢迎 ❤️关注 #x1f44d;点赞 #x1f64c;收藏 ✍️留言 题目
设L为带头结点的单链表#xff0c;编写算法实现从尾到头反向输出每个结点的值。
算法… 作者 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux算法题上机准备 欢迎 ❤️关注 点赞 收藏 ✍️留言 题目
设L为带头结点的单链表编写算法实现从尾到头反向输出每个结点的值。
算法思路
有递归和非递归两种方式递归可以利用函数的堆栈非递归可以使用数组存储倒置输出或者使用栈存储输出
题解
//递归
void inverPrintList(LinkedList L) {LNode* p L-next;//从第一个首节点开始if (p NULL) {//终止条件return;}inverPrintList(p);//递归printf(%d-, p-data);
}
//非递归
void inverPrintList2(LinkedList L) {//申请动态数组用来保存链表中的元素值ElemType* set (ElemType*)malloc(sizeof(ElemType) * L-data);int i 0;LNode* p L-next;while (p) {set[i] p-data;p p-next;}for (int j i - 1; j 0; j--) {printf(%d-, set[j]);}printf(\n);
}