- UID
- 580
- 精华
- 积分
- 561
- 威望
- 点
- 宅币
- 个
- 贡献
- 次
- 宅之契约
- 份
- 最后登录
- 1970-1-1
- 在线时间
- 小时
|
使用尽量简单的代码实现链表的倒序输出,这个就是考察使用栈的巧妙之处了。- #include <iostream>
- using namespace std;
- struct Node
- {
- int key;
- Node* next;
- };
- Node* createList(int arr[],int nLength);
- void printList(Node* head);
- void reversePrint(Node* head);
- void clearList(Node* head);
- void main()
- {
- int arr[] = {1,3,5,7,9};
- int nLength = sizeof(arr)/sizeof(arr[0]);
- Node* head = createList(arr,nLength);
- printList(head);
- reversePrint(head);
- clearList(head);
- }
- Node* createList(int arr[],int nLength)
- {
- Node* head = new Node;
- head->key = arr[0];
- head->next = NULL;
- Node *p = head;
- for(int i=1;i<nLength;i++)
- {
- Node* ptr = new Node;
- ptr->key = arr[i];
- ptr->next = NULL;
- p->next = ptr;
- p = p->next;
- }
- return head;
- }
- void printList(Node* head)
- {
- Node* p = head;
- while( p!= NULL )
- {
- cout<<p->key<<endl;
- p=p->next;
- }
- }
- void clearList(Node* head)
- {
- Node* p = head;
- Node* ptr;
- while( p!= NULL )
- {
- ptr = p->next;
- delete p;
- p = ptr;
- }
- }
- void reversePrint(Node* head)
- {
- if( head != NULL )
- {
- if( head->next != NULL )
- reversePrint(head->next);
- }
- cout<<head->key<<endl;
- }
复制代码 |
|