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