c++

#include<iostream>#include<windows.h>usingnamespacestd;typedefstructNode{intdata;Node*next;}Student;Student*createLink(intn){Student*head=newStudent;//先创建一个头指针Student*pre=head;//保存头指针的地址for(inti=0;i<n;i++){Student*p=newStudent;//需要添加的数据printf("请输入要添加的数据:");cin>>p->data;pre->next=p;//一个指针的netx指向新创建的节点pre=p;//然后让临时节点的地址为新创建的节点的地址p->next=NULL;///将节点的nex为空}returnhead;}intlengh(Student*head){Student*p=head->next;intcount=0;while(p!=NULL){count++;p=p->next;}returncount;}voidremoveElement(Student*head,intn){if(n>lengh(head)||n<0){throw"outrange";}Student*pre=head;//临时存储for(inti=0;i<n;i++)//获取要存储的上一个地址{pre=pre->next;}Student*p=pre->next;//要删除的节点pre->next=p->next;//将上一个节点指向要删除的节点的下一个节点deletep;}voidIinsertLink(Student*head,intn){if(n>lengh(head)||n<0){throw"outrange";}Student*newNode=newStudent;//申请新的节点存储数据Student*pre=head;//临时存储for(inti=0;i<n;i++)//获取要存储的上一个地址{pre=pre->next;}newNode->data=n;//赋值newNode->next=pre->next;//新节点的next指向原先的下一个节点pre->next=newNode;//再将要插入节点上一个节点的指向新增的节点}voiddisplay(Student*head){Student*p=head->next;while(p!=NULL){cout<<p->data<<endl;p=p->next;}}voidmain(){Student*head=createLink(5);removeElement(head,2);//在2的位置插入2display(head);}

2021-11-10 28 0