求解答關於鏈表的問題 -开发者知识库

求解答關於鏈表的問題 -开发者知识库,第1张

# include <stdio.h>
# include <malloc.h>
# include <stdlib.h>

typedef struct Node
{
int data;
struct Node * pNext;
}NODE, *PNODE;

PNODE create_list(void);
void traverse_list(PNODE pHead);
bool is_empty();

int main(void)
{
PNODE pHead = NULL;
pHead = create_list();
traverse_list(pHead);

return 0;
}

PNODE create_list(void)
{
int len, i, val;

PNODE pHead = (PNODE)malloc(sizeof(NODE));
if (pHead == NULL)
{
printf("分配失敗, 程序終止!\n");
exit(-1);
}

PNODE pTail = pHead;
pTail->pNext = NULL;

printf("輸入鏈表長度: ");
scanf("%d", &len);

for (i = 0; i < len;  i)
{

printf("輸入第%d個節點的值: ", i 1);
scanf("%d", &val);

PNODE pNew = (PNODE)malloc(sizeof(NODE));
if (pNew == NULL)
{
printf("分配失敗, 程序終止!\n");
exit(-1);
}
pNew->data = val;
pTail->pNext = pNew;
pNew->pNext = NULL;
pTail = pNew;
printf("%s %s", pTail->pNext,pNew->pNext);
}

return pHead;
}

void traverse_list(PNODE pHead)
{
PNODE p = pHead->pNext;
while (p != NULL)
{
printf("%d ", p->data);
p = p->pNext;
}
}

以上是程序,創建鏈表的函數中

pTail->pNext = pNew;
pNew->pNext = NULL;
pTail = pNew;
既然以上三句話把pTail和pNew的指針域都變為空了,話說鏈表是怎么保存的?還是我理解有誤?

13 个解决方案

#1


剛開始看你的程序,首先支持既然寫C程序就不要用C 語法或關鍵字,比如bool

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复