创建2个字符串C++的链表
我试着自学链表,根据字母表中的第一个字符串,用两个字符串制作链表。然后,函数将返回一个指向按字母顺序排序的2个字符串列表的指针。我不知道为什么,但是我下面的代码没有达到我期望的效果。如果有人能看看我的代码,让我知道为什么这不起作用,我会非常感激创建2个字符串C++的链表,c++,string,linked-list,C++,String,Linked List,我试着自学链表,根据字母表中的第一个字符串,用两个字符串制作链表。然后,函数将返回一个指向按字母顺序排序的2个字符串列表的指针。我不知道为什么,但是我下面的代码没有达到我期望的效果。如果有人能看看我的代码,让我知道为什么这不起作用,我会非常感激 struct Node{ string val; Node* next; }; Node* makePairList (string s1, string s2) { Node* h = NULL; Node* n =
struct Node{
string val;
Node* next;
};
Node* makePairList (string s1, string s2) {
Node* h = NULL;
Node* n = NULL;
Node* t = NULL;
if(s1 > s2)
{
n = new Node();
n->val = s1;
t=n;
h=n;
n= new Node();
n -> val = s2;
n-> next = NULL;
t -> next = n;
t=n;
}
else
{
n = new Node();
n->val = s2;
t=n;
h=n;
n= new Node();
n -> val = s1;
n->next = NULL;
t -> next = n;
t=n;
}
return h;
}
你怎么知道这不起作用呢?试一试,发现makePairListabc,def;其工作原理是创建一个包含两个节点的链表,第一个节点的值为def,第二个节点的值为abc。abc和def的交换是问题吗?我建议重新组织您的功能,因为您在这两种情况下的操作几乎相同。首先创建两个节点结构h=新节点;t=新节点;h->next=t;t->next=NULL;然后根据两个节点的条件设置值字段。这将简化和减少您的代码。如果s1