~~~ ¿Cómo puede terminar el estilo de escritura de una manera aburrida, y la historia no reconoce lo ordinario al principio? ✌✌✌
Si necesita el código completo, puede seguir la cuenta pública a continuación y responder "código" en segundo plano para obtenerlo. Aguang espera su visita ~
Pregunta:
Sea L una lista enlazada individualmente con un nodo principal y escriba un algoritmo para generar el valor de cada nodo en orden inverso de cola a cabeza.
Ideas para resolver problemas:
>利用递归栈进行实现
>栈的特性是后进先出
>所以可以采用递归实现
Código:
#include <iostream>
using namespace std;
typedef struct LNode
{
int data;
struct LNode *next;
} LNode, *LinkList;
// 头插法
void HeadInsert(LinkList &L)
{
int val = 0;
while (cin >> val)
{
LNode *s = new LNode;
s->data = val;
s->next = L->next;
L->next = s;
if (cin.get() == '\n')
{
break;
}
}
}
// 尾插法
void TailInsert(LinkList &L)
{
int val = 0;
LNode *r = L;
while (cin >> val)
{
LNode *s = new LNode;
s->data = val;
r->next = s;
r = s;
r->next = NULL;
if (cin.get() == '\n')
{
break;
}
}
}
// 遍历输出链表元素
void Print(LinkList L)
{
LNode *p = L->next;
while (p)
{
cout << p->data << '\t';
p = p->next;
}
cout << endl;
}
void ReversePrint(LinkList &L)
{
if (L == NULL)
{
return;
}
ReversePrint(L->next);
cout << L->data << '\t';
}
int main()
{
LinkList L = new LNode;
TailInsert(L);
ReversePrint(L->next);
}