- /**
- * 动态分配链表节点
- *
- * @file list.c
- * @brief
- * @author struggleLinux@gmail.com
- * @version 1.0
- * @date 2011-05-23
- */
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct NODE {
- int value;
- struct NODE *next;
- } Node;
- /**
- * 创建链表接节点
- * @brief create_list
- *
- * @param value
- *
- * @return
- */
- Node * create_node( int value );
- int main()
- {
- static Node *head;
- Node *lp , *node;
- int input ,i;
- //头节点分配内存
- head = (struct NODE * ) malloc(sizeof(Node));
- if( head == NULL ){
- printf("根节点分配内存失败\n");
- }
- head->value = 0;
- head->next = NULL;
- lp = head;
- puts("输入9999退出:");
- while( scanf("%d",&input) == 1 ){
- if( input == 9999 ) //退出输入
- break;
- node = create_node( input );
- if( node == NULL )
- break;
- lp->next = node;
- lp = node ;
- }
- //输出各节点的值
- i = 0;
- while( head->next != NULL ){
- ++i;
- printf("节点%d => %d \n",i,head->next->value);
- head->next = head->next->next;
- }
- return 0;
- }
- /**
- * 创建节点
- * @brief create_node
- *
- * @param value
- *
- * @return
- */
- Node * create_node( int value ){
- Node *new_node;
- //为节点分配内存
- new_node = (Node * ) malloc(sizeof( Node ));
- if( new_node ==NULL )
- return NULL;
- new_node->value = value;
- new_node->next = NULL;
- return new_node;
- }