C语言动态链表问题
建立一个链表,数据值是从1到13;
#include<stdio.h>
#include<stdlib.h>
#define N 13
struct Quan{
int num;
struct Quan *next;
}*p;
int main(){
struct Quan *creat(void);
void find(struct Quan *head);
int i;
p=creat();
for(i=0;i<N;i++){
p->next;
printf("%d,",p->num);
}
return 0;
}
struct Quan *creat(void){
int i;
struct Quan *head=NULL,*p1,*p2;
p1=p2=(struct Quan *)malloc(sizeof(struct Quan));
printf("malloc=%d\n",p1);
head=p1;
for(i=0;i<N;i++){
p1->num=i+1;
p1=(struct Quan *)malloc(sizeof(struct Quan));
p2->next=p1;
p2=p1;
}
p1->next=NULL;
return (head);
}
输出链表时,只是循环输出第一个节点的值。请问哪里出问题了?
#include<stdio.h>
#include<stdlib.h>
#define N 13
struct Quan {
int num;
struct Quan *next;
}*p;
int main() {
struct Quan *creat(void);
void find(struct Quan *head);
int i;
p = creat();
for (i = 0; i < N; i++) {
printf("%d,", p->num);
p = p->next;
}
return 0;
}
struct Quan *creat(void) {
int i;
struct Quan *head = NULL, *p1, *p2;
p1 = p2 = (struct Quan *)malloc(sizeof(struct Quan));
printf("malloc=%d\n", p1);
head = p1;
for (i = 0; i < N; i++) {
p1->num = i + 1;
p1 = (struct Quan *)malloc(sizeof(struct Quan));
p2->next = p1;
p2 = p1;
}
p1->next = NULL;
return (head);
}
for(i=0;i<N;i++){
p->next;
printf("%d,",p->num);
}
改为
for (i = 0; i < N; i++) {
printf("%d,", p->num);
p = p->next;
}