数据结构_数组与广义表_链表的递归遍历
遍历广义表的准备工作:
#include<iostream>
using namespace std;
class ListNode
{
public:
ListNode();
char name;
ListNode *next;
};
ListNode::ListNode()
{
next = NULL;
}
class LinkList
{
public:
LinkList();
ListNode *head;
void GetList(LinkList&);
void ListTraverse(ListNode*);
};
LinkList::LinkList()
{
head = NULL;
}
void LinkList::GetList(LinkList &l)
{
char name;
ListNode *newnode, *p;
while (cin >> name)
{
newnode = new ListNode;
newnode->name = name;
if ((p = l.head) == NULL)
l.head = newnode;
else
{
while (p->next != NULL)
p = p->next;
p->next = newnode;
}
}
cin.clear();
}
void LinkList::ListTraverse(ListNode *p)
{
if (p != NULL)
{
cout << p->name << endl;
ListTraverse(p->next);
}
}
int main()
{
LinkList l;
l.GetList(l);
l.ListTraverse(l.head);
}