我有以下代碼 我「米轉換存儲到鏈接列表字符串 例:ABC A-> B-> C-> NULL字符串鏈表使用雙指針
問題 : 當打印列表中,它是不給所需output.Following是代碼和樣品輸入/輸出
代碼
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
char ch;
struct node *next;
}node;
void create(node **head,char ch)
{
node *new;
new=malloc(sizeof(node));
new->next=NULL;
new->ch=ch;
if(*head==NULL)
{
*head=new;
printf("%c",(*head)->ch);
return ;
}
while((*head)->next)
{
(*head)=(*head)->next;
}
(*head)->next=new;
}
void printList(node *head)
{
printf("\nThe list has - ");
while(head)
{
printf("%c",head->ch);
head=head->next;
}
printf("\n\n");
}
int main()
{
node *head=NULL;
int i=0;
char *str=NULL;
str=malloc(sizeof(char)*15);
printf("\nEnter the string - ");
scanf("%s",str);
while(str[i]!='\0')
{
create(&head,str[i]);
i++;
}
printList(head);
return 0;
}
。
採樣輸入/輸出
輸入1
Enter the string - abc
a
The list has - bc
輸入2
Enter the string - abcde
a
The list has - de
輸入3
Enter the string - ab
a
The list has - ab
注:
如果我改變我的創造功能,這一點,一切都只是正常工作! 我想知道這裏有什麼區別? 它與雙指針有關嗎?
void create(node **head,char ch)
{
node *new,*ptr;
new=malloc(sizeof(node));
new->next=NULL;
new->ch=ch;
ptr=*head;
if(ptr==NULL)
{
ptr=new;
return;
}
while(ptr->next)
{
ptr=ptr->next;
}
ptr->next=new;
}
謝謝!
你沒有描述所需的輸出 – user590028 2015-02-09 17:44:42
@ user590028是不是很明顯..我說我試圖將字符串複製到鏈接列表。 – psychoCoder 2015-02-09 18:29:24