单向链表经典示例
1.#include "stdio.h"
2.#include "malloc.h"
3.#include "stdlib.h"
//定义一个链表的数据的类型
4.struct Node
5.{
6. int data; // 数据域
7. struct Node * pNext; // 指针域
8.} ;
//函数声明
9.void traver_list (struct Node *);
10.struct Node * create_list ( );
11.int main (void)
12.{
红楼梦贾宝玉人物分析13. struct Node *pHead = NULL; // pHead用来存放头结点的地址
14. pHead = create_list ( ) ; // 创建一个非循环单链表
15. traver_list (pHead) ; // 打印链表节点的数据
16. return 0 ;
17.}
//********* 函数1 *********
81年属什么
18.struct Node * create_list ( )
19.{
20. int len ; // 用来存放有效节点的个数
21. int i ;
22. int val ; 最新影评// 用来临时存放用户输入的节点的数值
//分配了一个不存放有效数据的头节点
23. struct Node *pHead = (struct Node *)malloc(sizeof (struct Node) ) ;
24. if(NULL == pHead)
25. {
26. printf ("分配失败,程序终止! \n" ) ;
27. exit ( -1 ) ; // 作用是终止程序
28. }
蛟龙号简介
29. struct Node * pTail = pHead ;
30. pTail ->pNext = NULL; // pTail->pNext <=> (*pTail).pNext
31. printf ("请输入您需要生成的链表带点的个数:len = ") ;
32. scanf ("%d",&len) ;
33. for( i = 0 ; i < len ; i++ 半坡人)
34. {
35. printf ("请输入第%d个节点的值:" , i+1) ;
36. scanf ( "%d" , &val) ;
37. struct Node *pNew = (struct Node*)malloc(sizeof(struct Node));
38. 血糖仪品牌if(NULL == pNew)
39. {
40. printf("分配失败,程序终止!\n");
41. exit(-1);
42. }
初中化学教学计划43. pNew -> data = val ;
44. pTail -> pNext = pNew ;
45. pNew -> pNext = NULL ;
46. pTail = pNew ;
47. }
48. return pHead ;
49.}
//********* 函数2 *********
50.void traver_list(struct Node *pHead)
51.{
52. struct Node *p = pHead -> pNext ;
53. while( NULL != p )
54. {
55. printf("%d ", p -> data) ;
56. p = p -> pNext ;
57. }
58. printf("\n"整改工作报告) ;
59.}