首先 妳的結構體定義就有問題,應該將裏面的
typedef struct node
{
int data;
struct node *next; //這裏應該加上個struct ,node 是標簽,但要和struct 連用才可以
}lnode,*linklist;
如果妳只是為了創建鏈表然後輸出鏈表內容這樣就可以了 在妳源碼基礎上修改的
linklist create_linklist() ?//創建鏈表
{
linklist head , p , q ;
int ch;
head=(linklist)malloc(sizeof(lnode));//創建頭結點,具體的現實意義自己去翻下書吧。
if( head == NULL )
{
exit(0);
}
head->next=NULL;
q = head;//q指向head
while( ?scanf("%d" , &ch) == 1 && ch != ?0 )//輸入0結束
{
p =?(linklist)malloc(sizeof(lnode));
if( p == NULL )//申請失敗是會返回NULL指針 , 這裏要檢查壹下
{
exit(0)
}
p->data = ch;
p->next = q->next; //==NULL
q->next = p;//q->next指向p
q = p;
}
return head;
}
display是對的 , 但是看妳結構體用的不是很熟練,typedef估計也沒弄清楚意思,還有指針也沒怎麽明白,妳的creatlist中的好多變量之前都沒有聲明就開始用了。斷定妳是c新手,我比妳老不到哪去。不管妳基礎如何 建議妳看看《c和指針》這本書關於指針和結構體的內容 , 講解的很清除,花時間去啃多看 看個十幾遍就會了 然後要敲代碼 。希望對妳有幫助