问个链表问题
程序如下(其中一部分)程序代码:
#include<stdio.h> #include<stdlib.h> typedef struct LNode { char data; struct LNode *next; }LNode,*LinkList; void CreateList(LinkList *L,int n) { //逆位序输入n个元素的值,建立带表头结点的单链线性表L int i; LinkList p; (*L) = (LinkList)malloc(sizeof(LNode)); (*L)->next = NULL; //先建立带头结点的单链表 for(i=n;i>0;--i) { p = (LinkList)malloc(sizeof(LNode)); //生成新结点 scanf("%c",&p->data); p->next = (*L)->next; (*L)->next = p; } } void display(LinkList *L) { LinkList di; di = (*L)->next; while(di!=NULL) { printf("%c\t",di->data); di = di->next; } } void main() { LinkList link; CreateList(&link,5); display(&link); }
我插入是5个,但为什么,只能输入3个呢?而且输出时,怎么会怪怪的? 拜托,帮帮忙