(三)C++逆置單鏈表
阿新 • • 發佈:2018-12-20
逆置單鏈表
建立長度為n的單鏈表,然後將其資料元素逆置,即第1個元素變為最後一個元素,第2個元素變為倒數第2個元素,以此類推,最後一個元素變為第1個元素。(處理的資料型別為字元型。必須使用連結串列完成。)
輸入
第一行為連結串列長度n; 第二行為連結串列中的n個數據元素的值。
輸出
逆置後的原始的值。
樣例輸入
10 ABCDEFGHIJ
樣例輸出
J I H G F E D C B A
// 9逆置單鏈表.cpp: 定義控制檯應用程式的入口點。 // #include "stdafx.h" #include <iostream> typedef char ElemType; using namespace std; class List { public: List(); void Creat_List(int len); void Reverse(); void Output(); ~List(); private: ElemType data; List *Next; }; List::List() { } void List::Creat_List(int len) { int i = 0; List *L,*Node; L = this; L->data = len; while (i<len) { Node = new List; cin >> Node->data; L->Next = Node; L = L->Next; i++; } L->Next = NULL; } void List::Reverse() { List *L,*Node,*Temp; List *Head=new List; Head->Next = NULL; Node = this->Next; while (Node) { L = Node->Next; Temp=Head->Next; Head->Next = Node; Node->Next = Temp; Node = L; } this->Next = Head->Next; Head->Next = NULL; delete Head; } void List::Output() { List *L; L = this->Next; while (L) { cout << L->data << " "; L = L->Next; } } List::~List() {//c++刪除連結串列就是方便 if (this->Next) { delete this->Next; } } int main() { int len = 0; List *Head = new List; cin >> len; Head->Creat_List(len); Head->Reverse(); Head->Output(); delete Head;//養成好習慣 return 0; }