能实现类似输入createlist aaa 就能新建一个aaa的链表并保存起来(后边还能用于多个链表合并)
createlist bbb 建立新链表bbb保存起来 我现在主要是新建了aaa 再新建bbb ,aaa就会被bbb给初始化掉了
怎么办 底下是我写的createlist代码
List* CreateList(List* head, char a, int x)
{
List* r, * s; //r老结点 s新节点
head = new List; //动态分配内存
head->data = a;
head->next = NULL;
r = head;
cout << "输入" << x << "个字符:";
for (int i = 0; i < x; i++)
{
s = new List;
cin >> s->data; //新节点的数据域填数据
r->next = s; //老结点的next指针指向新节点
r = s; //让新节点赋值给老结点 形成一次循环
s->next = NULL; //让最后一个新生成的结点指向空 变成尾结点
}
return head;
}
上边代码写错了 是这个!
List* CreateList(char a, int x)
{
List* head = new List;
head->data = a;
List* pre = head;
cout << "输入" << x << "个字符:";
for (int i = 0; i < x; i++)
{
List* p = new List;
cin >> p->data; //新节点的数据域填数据
pre->next = p; //老结点的next指针指向新节点
pre = p; //让新节点赋值给老结点 形成一次循环
pre->next = NULL; //让最后一个新生成的结点指向空 变成尾结点
}
return head;
}
我该怎么写才能创建多个链表呀 现在创建了一个 下一个要再建的话上一个就没了
List* list1= CreateList(a, 3)
List* list2= CreateList(b, 3)
有问题吗?这是两个链表。不存在覆盖的问题。
你想做的是不是创建一个链表,先创建一个aaa node,后面再连上一个bbb node?
如果是的话,那你现在的问题可能是没弄清楚list和node这两个概念。
一般create用于创建一个链表的表头,并不使用它继续往链表里添加新的元素。
添加节点我们需要再写一个函数,可以命名为add之类的。意思就是create返回head,add实现添加node。这么说,应该明白了吧