posts - 38, comments - 13, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

单链表---单节点的配置与释放

Posted on 2010-01-06 16:08 大源 阅读(430) 评论(0)  编辑 收藏 引用 所属分类: 数据结构
 1 /*=================Program Description=================*/
 2 /*程序名称:sigle_list2.c*/
 3 /*程序的目的:单链表单个节点的配置与释放的程序*/
 4 /*=============================================================*/
 5 
 6 #include <stdlib.h>           //malloc函数的声明在头文件stdlib.h处
 7 #include <stdio.h>            //printf,scanf函数的声明在stdio.h处
 8 #define MAX 10
 9 
10 /*节点的结构*/
11 struct List
12 {
13     int Number;          /*人员编号*/
14     char Name[MAX];      /*人员名称*/
15     struct List *Next;   /*指向下一结构List的指针域*/
16 };
17 
18 /*节点的变量*/
19 typedef struct List Node;   /*创建包含结构List的数据类型Node*/
20 typedef Node *Link;         /*指向数据类型Node的指针变量Link*/
21 
22 
23 int main(int argc, char *argv[])
24 {
25     Link New;      /*创建一个变量New,它存放的变量内容是地址*/
26 
27     /*初始化节点*/
28     int DataNum;        /*代表人员编号,赋值给节点数据*/
29     char DataName[MAX];    /*代表人员名称,赋值给节点数据*/
30     int i;    
31     
32     
33     /*节点的配置,并判断节点分配成功与否的动作流向*/
34     New = (Link)malloc(sizeof(Node));
35 
36     if(New == NULL)
37     {
38         printf("内存分配失败!\n");
39     }
40 
41     else
42     {
43         printf("please input the number: ");
44         scanf("%d",&DataNum);
45         printf("please input the name: ");
46         scanf("%s",&DataName);
47         
48         /*给节点数据赋值*/
49         New->Number = DataNum;
50         
51         for(i = 0; i <= MAX; i++)
52         {
53             New->Name[i] = DataName[i];
54         }
55         
56         New->Next = NULL;
57         
58         printf("##input data##\n");
59         printf("the number is: %d\n",New->Number);
60         printf("the name is: %s\n",New->Name);
61     }
62     
63     free(New);
64     
65     return 0;
66 }
67 
68 
69 
70 

 1 #Makefile文件#
 2 
 3 #RM = rm -f
 4 .PHONY:clean
 5 sigle_list2:sigle_list2.o
 6     gcc -o sigle_list2 sigle_list2.o
 7 sigle_list2.o:sigle_list2.c
 8     gcc -c sigle_list2.c
 9 clean:
10     $(RM) *.o sigle_list2

在命令行执行程序
 1 [root@localhost other]# make sigle_list2
 2 gcc -c sigle_list2.c
 3 gcc -o sigle_list2 sigle_list2.o
 4 [root@localhost other]# ./sigle_list2 
 5 please input the number: 20
 6 please input the name: hello
 7 ##input data##
 8 the number is: 20
 9 the name is: hello
10 [root@localhost other]# 
11 


只有注册用户登录后才能发表评论。