#include<iostream>
using namespace std;
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode, *LinkList;
//链表的初始化
void InitList(LinkList &L){
L = new LNode;
L->next = NULL;
}
//使用尾插法建立单链表
LinkList tailInsertList(LinkList &L, ElemType A[], int n){
LNode *r = L;//尾指针
for (int i = 0; i < n; i++)
{
LNode *s = new LNode;
s->data = A[i];
r->next = s;
r = s;
}
r->next = NULL; //尾指针置空
return L;
}
//打印链表的数据(无头结点)
void printList(LinkList L){
LNode *p = L->next;
while (p != NULL)
{
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
//逆向输出单链表
void printRevList(LinkList L){
if (L->next != NULL)
printRevList(L->next);
cout << L->data << " ";
}
void main()
{
LinkList L;
InitList(L);
ElemType A[10] = { 1, 6, 15, 20, 35, 98, -7, 15, -2, 9 };
tailInsertList(L, A, 10);
printList(L);
printRevList(L->next);//注意入口为第一个带元素的结点
}
使用递归与非递归方式,实现顺序表中所有元素的逆转。
最新推荐文章于 2022-01-30 16:41:34 发布