#include<iostream>
using namespace std;
struct Node{
int data;
Node* next;
};
int main(){
//创建头节点 (是一个结构体指针)
Node* A;
A=NULL;
//创建第一个节点
Node* temp = new Node(); //为新节点开辟一个空间 (temp相当于模具可以重复使用)
temp -> data = 2; //为数据域赋值
temp -> next = NULL; //为指针域赋值
A = temp; //将第一个节点的地址给头节点
//新创建一个节点用来进行尾部添加
temp = new Node();
temp -> data = 4;
temp -> next = NULL;
//遍历链表,位移到最后一个节点位置以便尾部添加新节点
Node* temp1 = A; //用temp1复制一个头节点来遍历,以免头节点的丢失
while(temp1 -> next != NULL){ //当指针域为空时,说明已经到尾结点,停止遍历
temp1 = temp1 -> next; //将temp1中指针域的地址(下一个节点地址)赋给自己,相当于使temp1变成下一个节点
}
//将新创建的节点添加到尾部(使之前遍历到最后的那个节点指针域里面的指针指向新节点)
temp1 -> next = temp;
//从头节点来遍历链表查看添加情况
temp1 = A; //使temp1重新指向头节点,以便于从头遍历
while(temp1 != NULL){ //当前节点为空时,说明链表已经结束,停止遍历
cout << temp1 -> data; //输出当前节点数据域中的数据
temp1 = temp1 -> next; //将temp1中指针域的地址(下一个节点地址)赋给自己,相当于使temp1变成下一个节点
}
return 0;
}
小谈c++数据结构——链表的基础使用
最新推荐文章于 2024-07-22 19:36:52 发布