数据结构------单链表[二]

 1 #include <stdio.h>

 2 #include <stdlib.h>

 3 

 4 /*创建struct Node这种数据类型的结构体*/

 5 typedef struct Node

 6 {

 7     int data;

 8     struct Node *pNext;

 9 }NODE, *PNODE;  //  NODE相当于 struct Node;   PNODE相当于 struct Node *

10 

11 

12 /*函数声明*/

13 PNODE creat_list(void);

14 void traverse_list(PNODE pHead);

15 

16 /*主函数*/

17 int main(void)

18 {

19     PNODE pHead = creat_list();  

20     traverse_list(pHead);        

21     return 0;

22 }

23 

24 /*创建链表*/

25 PNODE creat_list(void)

26 {

27     int len, val, i;

28     PNODE pTail = NULL;

29     PNODE pNew = NULL;

30     PNODE pHead = (PNODE)malloc(sizeof(NODE));  //创建头结点

31     if ( NULL == pHead )

32     {

33         printf("内存申请失败\n");

34         exit(-1);

35     }

36     pTail = pHead;

37     pTail->pNext = NULL;

38 

39     printf("您需要创建多少个节点?\n");

40     printf("len = ");

41     scanf("%d", &len);

42 

43     for (i = 0; i < len; ++i)

44     {

45         printf("第%d个节点的值:", i+1);

46         scanf("%d", &val);

47         pNew = (PNODE)malloc(sizeof(NODE));

48 

49         if ( NULL == pNew)

50         {

51             printf("内存申请失败.\n");

52             exit(-1);

53         }

54 

55         pNew->data = val;

56         pTail->pNext = pNew;

57         pTail = pNew;

58         pTail->pNext = NULL;

59     }

60     return pHead;

61 }

62 

63 

64 /*遍历链表*/

65 void traverse_list(PNODE pHead)

66 {

67     pHead = pHead->pNext;

68     while ( NULL != pHead )

69     {

70         printf("%d\t", pHead->data);

71         pHead = pHead->pNext;

72     }

73     printf("\n");

74 }

数据结构的学习才刚刚开始~~~哟西!~~~

你可能感兴趣的:(数据结构)