mirror of
https://github.com/This-weiyuqing/DSAndOS.git
synced 2026-10-17 18:55:44 +08:00
54 lines
1.1 KiB
C++
54 lines
1.1 KiB
C++
/***依次输出链表中的各个结点***/
|
|
|
|
#include<iostream>
|
|
using namespace std;
|
|
|
|
#define OK 1
|
|
#define ERROR 0
|
|
#define OVERFLOW -2
|
|
typedef int Status;
|
|
typedef char ElemType;
|
|
typedef struct LNode {
|
|
ElemType data; //结点的数据域
|
|
LNode *next; //结点的指针域
|
|
} LNode, *LinkList;//头指针
|
|
|
|
//后插法创建链表算法
|
|
void CreateList_L(LinkList &L, int n) {
|
|
L = new LNode;
|
|
L->next = NULL;
|
|
LNode *p, *r;
|
|
r = L;
|
|
for (int i = 0; i < n; i++) {
|
|
p = new LNode;
|
|
cin >> p->data;
|
|
p->next = NULL;
|
|
r->next = p;
|
|
r = p;
|
|
}
|
|
}
|
|
|
|
//算法3.9 遍历输出链表中各个结点的递归算法
|
|
void TraverseList(LinkList p) {
|
|
if (p == NULL)
|
|
return; //递归终止
|
|
else {
|
|
cout << p->data << endl; //输出当前结点的数据域
|
|
TraverseList(p->next); //p指向后继指点继续递归
|
|
}
|
|
}
|
|
|
|
int main() {
|
|
int n;
|
|
LinkList L;
|
|
//InitList(L);
|
|
cout << "请输入元素个数:" << endl;
|
|
cin >> n;
|
|
cout << "请输入链表元素(以空格隔开,按回车结束):" << endl;
|
|
CreateList_L(L, n); //后插法创建链表算法
|
|
cout << "链表中的元素依次为:" << endl;
|
|
TraverseList(L->next);
|
|
cout << endl;
|
|
return 0;
|
|
}
|