单向链表构造方法
2025-01-20 17:51:23
发布于:广东
#include<iostream>
using namespace std;
struct node{//构造节点
int data;//数据域
node *next;//指针域
};
int main(){
node *head,*r,*p,*s;//头节点、尾节点
head=new node;//创节点空间
head->next=NULL;//清空指针域(确保没有下一个节点 )
r=head;//由于只有一个节点,所以尾就是头
int n,x,m,q;
cin>>n; //输入一个n,构造一个n个节点的链表
for(int i=1;i<=n;i++){
cin>>x;
p=new node; //给每一个节点开空间
p->data=x;//给数据域赋值
p->next=NULL;//清空指针域(确保没有下一个节点 )
r->next=p;//连接新节点
r=p;//更新尾节点
}
//遍历链表
p=head; //归为到头节点
while(p->next!=NULL){ //查看是否存在下一个节点
cout<<p->next->data<<" ";//输出下一个节点的数据
p=p->next;//挪至下一个节点
}
//删除第3个节点
//先定位到第2个节点,直接从第2个节点连到第4个节点
p = head->next->next;
p->next = p->next->next;
//改变第2个节点,值为100
p=head->next->next;
p->data = 100;
//在2号节点后面插入一个新节点,值为90
p=head->next->next; //定位到第2个节点
node *q; //创建新节点
q = new node;//开空间
q->next = NULL;//确保没有下一个节点
q->data = 90;//数据与赋值为90
q->next = p->next; //先连接新节点到第三号节点
p->next = q;//再连接第2个节点到新节点
return 0;
}
这里空空如也
有帮助,赞一个