·····················································.h文件
#ifndef LIST_H
#define LIST_H
#include <iostream>
using namespace std;
template <class T>
struct Node
{
T data;
Node<T> *next;
};
template <class T>
class List
{
private:
Node<T> *head;
int _size;
public:
List();
void createlist1(int n);
void createlist2(int n);
void insert(int i, int e);
void deletebyeindex(int i);
int find(T element);
void change(int j, T element);
void reverse();
void display();
};
//插入链表
template <class T>
void List<T>::createlist2(int n)
{
Node<T> *temp;
Node<T> *p;
p = head;
cout << "请输入你想输入的元素: " << endl;
for (int i = 0; i < n; i++)
{
temp = new Node<T>;
cin >> temp->data;
p->next = temp;
p = temp;
}
p->next = NULL;
}
//反转链表
//反转链表
template <class T>
void List<T>::reverse()
{
Node<T> *reverse = NULL;
Node<T> *next;
for (int i = 0; i < _size; i++)
{
next = head->next;
head->next = reverse;
reverse = head;
head = next;
}
}
················································································· .cpp文件
#include <iostream>
#include "List.h"
using namespace std;
int main()
{
// List<double> s1;
List<int> s2;
// s1.createlist1(4);
s2.createlist2(4);
// s1.display();
// s2.insert(2,200);
// s2.deletebyeindex(1);
s2.display();
// s2.change(1,200);
// s2.reserve();
// s2.display();
s2.reverse();
s2.display();
// cout << s2.find(4) << endl;
return 0;
}
1
2
3
4
1
2
3
4
我要看了你的display才能下定论,而且你好歹也发一下测试截图呀
s2.reverse();这方法,需要返回反转后的集合,然后List 2 = s2.reverse()
你自己先拿个笔在纸上画画,你的反转代码逻辑都不对