70,037
社区成员
发帖
与我相关
我的任务
分享void showList(Linklist L) {
LNode* p = NULL;
p = L->next;
while (p != NULL)
{
printf("%d\t", p->data);
p = p->next;
}
printf("\n");
}
int CreateFrom_H(Linklist L) {
LNode* s;
int c,i=2; //插入的值
printf("第1个结点的值:");
scanf_s("%d", &c);
while (c != 9999){//输入9999创建结束
s = (Linklist)malloc(sizeof(LNode));
s->data = c;
s->next = L->next;
L->next = s;
printf("第%d个结点的值:",i);
scanf_s("%d", &c);
i = i++;
}
return L;
}
头插法和打印单链表代码如上,但打印是报错但会出结果
很熟悉的 0xCCCCCCCC。
感觉这是DEBUG模式下的没有初始化内存,系统置为 0xCC。如果是 RELEASE 就是随机的了。
修改完善如下,供参考:
#include<stdio.h>
#include <stdlib.h>
typedef struct list {
int data;
struct list* next;
}LNode, * Linklist;
void showList(Linklist L) {
LNode* p = NULL;
p = L->next;
while (p != NULL)
{
printf("%d\t", p->data);
p = p->next;
}
printf("\n");
}
Linklist CreateFrom_H(Linklist L) { //int CreateFrom_H(Linklist L) {
LNode* s;
int c, i = 2; //插入的值
printf("第1个结点的值:");
scanf("%d", &c);
while (c != 9999) {//输入9999创建结束
s = (Linklist)malloc(sizeof(LNode));
s->data = c;
s->next = L->next;
L->next = s;
printf("第%d个结点的值:", i);
scanf("%d", &c);
i = i++;
}
return L;
}
int main()
{
Linklist L;
L = (Linklist)malloc(sizeof(LNode));
L->next = NULL;
CreateFrom_H(L);
showList(L);
system("pause");
return 0;
}