//#include<iostream>
//#include<string>
//using namespace std;
//
//struct Node{ //节点模板 结构体
// int data;
// struct Node* next;
//};
//struct Node* createList() //链表模板 结构体
//{
// Node*newNode = new Node;
// newNode->next = nullptr;
// return newNode;
//}
//struct Node* createNode(int data) //创捷新节点 且连接链表的结构体
//{
// Node* newNode = new Node;
// newNode->data = data;
// newNode->next = nullptr;
// return newNode;
//}
//
//void insertData(Node* headNode, int data)
//{
// Node* newNode = createNode(data);
// newNode->next = headNode->next;
// headNode->next = newNode;
//}
//void printfList(Node* headNode)
//{
// Node* pMove = headNode->next;
// while (pMove != nullptr)
// {
// cout << pMove->data << "\t";
// pMove = pMove->next;
// }
// cout << endl;
//}
//void testListC()//C语言
//{
// Node* list = createList();
// insertData(list, 10);
// insertData(list, 20);
// printfList(list);
//}
//int main()
//{
// testListC();
// return 0;
//}
//#include<iostream>
//#include<string>
//using namespace std;
//struct Node
//{
// int data;
// Node*next;
//};
//class List
//{
//public :
// void createList()
// {
// headNode = new Node;
// headNode->next = nullptr;
// }
// void insertData(int data)
// {
// Node* newNode = new Node;
// newNode->data = data;
// newNode->next = nullptr;
//
// newNode->next = headNode->next;
// headNode->next=newNode ;
//
// }
//
// void printfList()
// {
// Node*pMove = headNode->next;
// while (pMove != nullptr)
// {
// cout << pMove->data << "";
// pMove = pMove->next;
// }
// cout << endl;
// }
//protected://用一个指针表示整个表头
// Node* headNode;
//};
//void testList1()
//{
// List* pList = new List;//List list;//c++第一步,创建对象
// pList->createList();
// pList->insertData(10);
// pList->insertData(20);
// pList->printfList();
//}
//int main()
//{
//
// testList1();
// return 0;
//}
#include<iostream>
#include<string>
using namespace std;
class Node
{
public ://用类去写,显著特点是需要接口交互数据
Node*& getNext()
{
return next;
}
int& getData()
{
return data;
}
protected:
int data;
Node*next;
};
class List
{
public :
void createList() //第二步,创建初始化链表的方法(值无,指向空)
{
headNode = new Node;
headNode->getNext() = nullptr;
}
void insertData(int data) //第三步,创建增加节点的方法
{
Node*newNode = new Node;
newNode->getNext() = nullptr;
newNode->getData() = data;
newNode->getNext() = headNode->getNext();
headNode->getNext() = newNode;
}
void printfList() //最后一步,打印链表的函数
{
Node* pMove = headNode->getNext();
while (pMove != nullptr)
{
cout << pMove->getData() << "\t";
pMove = pMove->getNext();
}
cout << endl;
}
protected: //第一步创建未初始化的头结点的
Node*headNode;
};
void testList1() //结尾的调用
{
List* pList=new List;//List list;//c++第一步,创建对象
pList->createList();
pList->insertData(10);
pList->insertData(20);
pList->printfList();
}
int main()
{
testList1();//调用 调用方法。
return 0;
}