|
发表于 2013-10-28 10:50:46
|
显示全部楼层
高手帮忙看看这个错哪了行不?- #include <stdio.h>
- #include <malloc.h>
- #include <stdlib.h>
- typedef struct Node
- {
- int data; // 数据域
- struct Node * pNext; // 指针域
- }NODE, *PNODE; // NODE等价于struct Node,PNODE等价于struct Node *
- PNODE create_list(void);
- void traverse_list(PNODE pHead);
- int main(void)
- {
- PNODE pHead = NULL; // 等价于struct Node pHead = NULL;
- pHead = create_list(); // creast_list函数的功能:创建一个非循环单链表,并将头结点的地址赋给pHead
- traverse_list(pHead);
- return 0;
- }
- PNODE create_list(void)
- {
- int i;
- int len; // 用来存放有效节点的个数
- int val; // 用来临时存放用户输入的节点的值
- // 分配了一个不存放有效数据的头结点
- PNODE pHead = (PNODE)malloc(sizeof(NODE));
- if (NULL == pHead)
- {
- printf("内存分配失败,程序终止!\n");
- exit(-1);
- }
- PNODE pTail = pHead;
- pHead->pNext = NULL;
- printf("请输入你所要生成的节点的个数:len = ");
- scanf("%d", &len);
- for (i = 0; i < len; ++i)
- {
- printf("请输入第%d的节点的值:", i+1);
- scanf("%d", &val);
- PNODE pNew = (PNODE)malloc(sizeof(NODE));
-
- if (NULL == pNew)
- {
- printf("内存分配失败,程序终止!\n");
- exit(-1);
- }
- pNew->data = val;
- pTail->pNext = pNew;
- pNew->pNext = NULL;
- pTail = pNew;
- }
- return pHead;
- } // end function PNODE creast_list
- void traverse_list(PNODE pHead)
- {
- PNODE p = pHead->pNext;
- while (NULL != p)
- {
- printf("%d ", p->data);
- p = p->pNext;
- }
- printf("\n");
- return; // 表示函数已结束
- }
复制代码 |
|