程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 編程之美讀書筆記---單鏈表反序---要求只遍歷一次

編程之美讀書筆記---單鏈表反序---要求只遍歷一次

編輯:C++入門知識


擴展問題:
 
編寫一個函數,給定一個鏈表的頭指針,要求只遍歷一次,將單鏈表中的元素順序反序。
 
#include <iostream> #include <string> #include <algorithm> #include <cstring> using namespace std; struct node{ int data; node *next; }; void reverselist(node* &head) { node *p,*q; p=head->next; q=head->next->next; if(q==NULL)return; //若鏈表只有一個元素,則不操作 p->next=NULL; while(q->next!=NULL) { node *tmp=q->next; q->next=p; p=q; q=tmp; } q->next=p; head->next=q; //將表頭指針調轉 } void destroy(node* &head) { node *p=head; head=head->next; while(head->next!=NULL) { delete p; p=head; head=head->next; } delete p; delete head; } int main() { node *head=new node; head->next=NULL; int n; cin>>n; while(n--) { node *pt=new node; cin>>pt->data; pt->next=head->next; head->next=pt; } reverselist(head); //此時簡歷的鏈表是輸入的逆序,所以倒序後成為輸入的正序 node *pt=head->next; while(pt->next!=NULL) { cout<<pt->data<<" "; pt=pt->next; } cout<<pt->data<<endl; destroy(head); //記得資源回收 return 0; } #include <iostream> #include <string> #include <algorithm> #include <cstring> using namespace std; struct node{ int data; node *next; }; void reverselist(node* &head) { node *p,*q; p=head->next; q=head->next->next; if(q==NULL)return; //若鏈表只有一個元素,則不操作 p->next=NULL; while(q->next!=NULL) { node *tmp=q->next; q->next=p; p=q; q=tmp; } q->next=p; head->next=q; //將表頭指針調轉 } void destroy(node* &head) { node *p=head; head=head->next; while(head->next!=NULL) { delete p; p=head; head=head->next; } delete p; delete head; } int main() { node *head=new node; head->next=NULL; int n; cin>>n; while(n--) { node *pt=new node; cin>>pt->data; pt->next=head->next; head->next=pt; } reverselist(head); //此時簡歷的鏈表是輸入的逆序,所以倒序後成為輸入的正序 node *pt=head->next; while(pt->next!=NULL) { cout<<pt->data<<" "; pt=pt->next; } cout<<pt->data<<endl; destroy(head); //記得資源回收 return 0; }

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved