從尾到頭打印鏈表(不改變鏈表結構)
阿新 • • 發佈:2018-04-07
pri 鏈表 create 打印 main creat ack UC list
/* * 從尾到頭打印鏈表.cpp * * Created on: 2018年4月7日 * Author: soyo */ #include<iostream> #include<stack> using namespace std; struct node { int data; node * next; }; node * create_head(node *p,int v) { p=new node; p->data=v; p->next=NULL; return p; } node * add_list(node*head,intn) { node *p,*p1; p=head; p1=new node; p1->data=n; p1->next=NULL; while(p->next!=NULL) p=p->next; p->next=p1; return head; } void println(node *head) { if(head==NULL) return; while(head!=NULL) { cout<<head->data<<""; head=head->next; } cout<<endl; } void ReversePrint(node *head) { if(head==NULL) return; stack<node*>s; node *p; while(head!=NULL) { s.push(head); head=head->next; } while(!s.empty()) { p=s.top(); cout<<p->data<<" "; s.pop(); } } int main() { node *p,*head; int data=5; head=create_head(p,data); int a[]={2,4,6,7,8,9}; for(int i=0;i<sizeof(a)/sizeof(int);i++) { head=add_list(head,a[i]); } println(head); cout<<"利用棧從尾到頭打印鏈表"<<endl; ReversePrint(head); }
結果:
5 2 4 6 7 8 9 利用棧從尾到頭打印鏈表 9 8 7 6 4 2 5
從尾到頭打印鏈表(不改變鏈表結構)