单链表的插入呀
for的意思是先创建一个空节点,p指向它,然后你输入一个元素,把这个元素放到这个节点的info域,即scanf(“%c”,&p->info),这句应该在printf后面,你掉了
然后把这个p赋值给q的next域,应该是q->next=p;你写错了,即头节点指向下一个节点了
之后q=p;是让q指向这个新节点,继续循环。
正确代码:
for(i=1;i
p=(NODE*)malloc(sizeof(NODE));
printf("Enter a element\n");
scanf(“%c”,&p->info);
q->next=p;
q=p;
}
你的代码是错的,这是尾插法建立链表的程序
head=(NODE*)malloc(sizeof(NODE));
q=head; //申请一个头结点 这是一个带头结点的链表
for(i=1;i
p=(NODE*)malloc(sizeof(NODE));
printf("Enter a element\n");
q->next=p; //这里应该是q->next 表示将新申请的结点p加到原表尾
q=p; //新结点p成为新的表尾
}
for(i=1;i
p=(NODE*)malloc(sizeof(NODE));
printf("Enter a element\n");
p->next=p; //如果是 链表 你这个程序这里应该有问题的 应该是q->next=p;
q=p;
}
建立长度为n的链表,for循环每次循环新建一个节点