算法习题---线性表之单链表逆序打印
标签:nbsp 简单 klist 假设 分享 malloc 打印 stat define
一:题目
逆序打印单链表中的数据,假设指针指向单链表的开始结点
二:思路
3.若是可以,对链表数据使用头插法,逆序排列,然后正序打印即可
三:算法实现(这里使用方法一:递归实现简单易懂)
#define _CRT_SECURE_NO_WARNINGS
#include
#include #define MAXSIZE 10
#define OK 1
#define ERROR 0
typedef int Status;
typedef struct Node
{
int data;
struct Node* next;
}LNode,*LinkList;
//初始化链表,带有头结点
Status InitList(LinkList* L)
{
LNode* p,*q;
//初始化头结点
*L = (LinkList)malloc(sizeof(LNode));
if (*L == NULL)
return ERROR;
(*L)->next = NULL;
p = *L;
//头插法插入数据1-10,也就是说创建后的链表数据是由10-1的
for (int i = 0; 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;
//初始化链表数据
InitList(&L);
//打印数据
InvertPrint(L->next);
system("pause");
return 0;
}
算法习题---线性表之单链表逆序打印
标签:nbsp 简单 klist 假设 分享 malloc 打印 stat define
原文地址:https://www.cnblogs.com/ssyfj/p/9567541.html
评论