有人可以帮我理解我做错了什么。我需要在链表中插入一个字符。
它需要像人名这样的输入,而不是反转它。然后它告诉用户选择一个位置来添加一个字符。
void insert_char(Node* plist, char x, int p){
Node* d=plist;
for (int i=1; i<p and 0!=d; i++)
d=d->next;
if (0 !=d)
d->x=x;
但是,此代码更改了字符,而不是添加了字符。
更新:
我还是想不通。
void insert_char(Node* plist, char x, int p){
Node* d=plist;
Node* d2=0;
for (int i=1; i<p and 0!=d; i++)
d2->next=d->next;
d->next=d2;
if (0 !=d)
d2->x=x;
return;
}
我收到分段错误。
好的,所以我想通了,我真正想要的是什么。感谢帮助
void insert_char(Node* plist, char x, int p){
Node* d=plist;
Node* d2= new Node();
for (int i=1; i<p and d; i++)
d2->next=d->next;
d->next=d2;
if (0 !=d)
d2->x=x;
return;
}