#include
using namespace std;
typedef int Type;
struct TestList{
Type element;
TestList* next;
};
int main()
{
TestList* head=new TestList;
TestList* new_data=new TestList;
cout<<“输入头结点一个值(int):”;
cin>>head->element;
head->next=NULL;
cout<<"\n输入子结点一个值(int):";
cin>>new_data->element;
new_data->next=NULL;
cout<<“链接结点:”<<endl;
new_data->next=head->next;
head->next=new_data;
cout<<“输出结点数值:”;
int cnt=1;
while(head!=NULL){
cout<<“第”<<cnt++<<“值为:”<element<<endl;
head=head->next;
}
cout<<“进阶输入多个结点(从上面可以看出我们不可以让头结点发生地址变化,所以需要第三者):”<<endl;
// TestList* new_head=NULL;
// cout<<“请输入需要新增的结点数:”;
// cin>>cnt;
// for(int i=0;i<cnt;i++){
// TestList* newnew_data=new TestList;
// cout<<“输入第”<<i+1<<“个结点的值:”;
// cin>>newnew_data->element;
// newnew_data->next=NULL;
// if(new_headNULL){
// new_head=newnew_data;
// new_head->next=newnew_data->next;
// }else{
// TestList* temp=new_head;//第三者出现
// newnew_data->next=temp->next;
// temp->next=newnew_data;
// }
// }
// cout<<“输出个结点的值:”<<endl;
// cnt=1;
// while(new_head!=NULL){
// cout<<“第”<<cnt++<<“值为:”<<new_head->element<<endl;
// new_head=new_head->next;
// }
cout<<“以上新结点的加入方法则是不断在head中间加入(如果想要像数组那样加入 得加循环 这是我目前水平的认为 具体如下)”<<endl;
TestList* new_head=NULL;
cout<<“请输入需要新增的结点数:”;
cin>>cnt;
for(int i=0;i<cnt;i++){
TestList* newnew_data=new TestList;
cout<<“输入第”<<i+1<<“个结点的值:”;
cin>>newnew_data->element;
newnew_data->next=NULL;
if(new_headNULL){
new_head=newnew_data;
new_head->next=newnew_data->next;
}else{
TestList* temp=new_head;//第三者出现
while(temp->next!=NULL)
temp=temp->next;
newnew_data->next=temp->next;
temp->next=newnew_data;
}
}
cout<<“输出个结点的值:”<<endl;
cnt=1;
while(new_head!=NULL){
cout<<“第”<<cnt++<<“值为:”<<new_head->element<<endl;
new_head=new_head->next;
}
cout<<“以上是我目前菜鸟水平对链表的看法 错误肯定很多的 第一次学习这些东西我觉得吧 难 不懂 不知道指针位置 希望以后能渐渐懂吧”;
return 0;
}
初学数据结构
最新推荐文章于 2024-07-15 13:32:43 发布