算法习题---线性表之单链表逆序打印
生活随笔
收集整理的這篇文章主要介紹了
算法习题---线性表之单链表逆序打印
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一:題目
逆序打印單鏈表中的數(shù)據(jù),假設(shè)指針指向單鏈表的開始結(jié)點(diǎn)二:思路
1.可以使用遞歸方法,來進(jìn)行數(shù)據(jù)打印 2.可以借助數(shù)組空間,獲取長度,逆序打印數(shù)組 3.若是可以,對(duì)鏈表數(shù)據(jù)使用頭插法,逆序排列,然后正序打印即可三:算法實(shí)現(xiàn)(這里使用方法一:遞歸實(shí)現(xiàn)簡單易懂)
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h>#define MAXSIZE 10#define OK 1 #define ERROR 0typedef int Status;typedef struct Node {int data;struct Node* next; }LNode,*LinkList;//初始化鏈表,帶有頭結(jié)點(diǎn) Status InitList(LinkList* L) {LNode* p,*q;//初始化頭結(jié)點(diǎn)*L = (LinkList)malloc(sizeof(LNode));if (*L == NULL)return ERROR;(*L)->next = NULL;p = *L;//頭插法插入數(shù)據(jù)1-10,也就是說創(chuàng)建后的鏈表數(shù)據(jù)是由10-1的for (int i = 0; i < MAXSIZE; i++){q = (LNode*)malloc(sizeof(LNode));q->data = i + 1;q->next = p->next;p->next = q;}return OK; }void InvertPrint(LinkList L) {if (L!=NULL){InvertPrint(L->next);printf("%d->", L->data);} }int main() {LinkList L;//初始化鏈表數(shù)據(jù)InitList(&L);//打印數(shù)據(jù)InvertPrint(L->next);system("pause");return 0; }?
轉(zhuǎn)載于:https://www.cnblogs.com/ssyfj/p/9567541.html
總結(jié)
以上是生活随笔為你收集整理的算法习题---线性表之单链表逆序打印的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何让VB6代码编辑器垂直滚动条随鼠标滚
- 下一篇: codeforces 1029 A. M