#include <stdio.h>
#include <stdlib.h>
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*Link;
void hInsert(Link *h,int n){
LNode *s;
int i;
*h=(Link)malloc(sizeof(LNode));
(*h)->next=NULL;
for(i=0;i<n;i++){
s=(Link)malloc(sizeof(LNode));
s->data=1;
s->next=(*h)->next;
(*h)->next=s;
}
}
void l(Link h){
LNode *p=h->next;
while(p!=NULL){
printf("%d\n",p->data);
p=p->next;
}
}
int main()
{
Link h=NULL;
hInsert(&h,5);
l(h);
return 0;
}
你的语法是错误的,(h)后面不能用→,用→就不能用号。如果还不理解的话,可以问我,
这段代码没有问题啊:
#include <stdio.h>
#include <stdlib.h>
typedef struct LNode {
int data;
struct LNode* next;
}LNode, * Link;
void hInsert(Link* h, int n) {
LNode* s;
int i;
(*h) = (Link)malloc(sizeof(LNode));
(*h)->next = NULL;
for (i = 0; i < n; i++) {
s = (Link)malloc(sizeof(LNode));
s->data = 3;
s->next = (*h)->next;
(*h)->next = s;
}
}
void l(Link h) {
LNode* p = h->next;
while (p != NULL) {
printf("%d\n", p->data);
p = p->next;
}
}
int main()
{
Link h = NULL;
hInsert(&h, 5);
l(h);
return 0;
}