当前位置: 代码迷 >> 综合 >> (三)C++逆置单链表
  详细解决方案

(三)C++逆置单链表

热度:104   发布时间:2023-10-19 20:43:40.0

                                              逆置单链表

 

建立长度为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;
}

 

  相关解决方案