| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 964 人关注过本帖
标题:链表的创建与释放
取消只看楼主 加入收藏
唯佳
Rank: 2
等 级:论坛游民
帖 子:42
专家分:44
注 册:2012-1-11
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:4 
链表的创建与释放
//程序名称:create
//程序目的:设计一个将输入的数据建立成链表的程序
#include <stdio.h>
#include <stdlib.h>
#define Max 10

struct List
{
    int Number;
    char Name[Max];
    struct List *Next;
};
typedef struct List Node;
typedef Node *Link;
//释放链表
void Free_List(Link Head)
{
    Link Pointer;

    while( Head != NULL)
    {
        Pointer=Head;
        Head=Head->Next;
        free(Pointer);
    }

}

//输出链表数据
void Print_List(Link Head)
{
    Link Pointer;
    Pointer = Head;
    while( Pointer != NULL )
    {
        printf("##Input Data##\n");
        printf("Data Number :%d \n",Pointer->Number);
        printf("Data Name :%s \n",Pointer->Name);
        Pointer=Pointer->Next;
    }
}

//建立链表
Link Create_List(Link Head)
{
    int DataNum;
    char DataName[Max];
    Link New;
    Link Pointer;
    int i;

    Head = (Link)malloc(sizeof(Node));

    if ( Head == NULL )
        printf("Memory allocate Fauilure!!\n");
    else
    {
        DataNum = 1;
        printf("Please input data name : \n");
        scanf("%s",DataName);
        Head->Number = DataNum;

        for (i=0;i<=Max;i++)
            Head->Name[i] = DataName[i];

            Head->Next = NULL;

            Pointer = Head;

            while(1)
            {
                DataNum++;
                New = (Link)malloc(sizeof(Node));
                    printf("Please input the data name : ");
                    scanf("%s",DataName);
                if(DataName[0] == '0')
                    break;
                New->Number = DataNum;
            for (i=0 ; i <=Max; i++)
            {
                New->Name[i] = DataName[i];
            }
            New->Next = NULL;

            Pointer->Next = New;

              Pointer = New;
            }
    }
    return Head;
}

void main()
{
    Link Head;

    Head=Create_List(Head);//调用建立链表

    if ( Head != NULL)
    {
        Print_List(Head);
        Free_List(Head);
    }

}
搜索更多相关主题的帖子: void 设计 include create 
2012-01-12 08:48
唯佳
Rank: 2
等 级:论坛游民
帖 子:42
专家分:44
注 册:2012-1-11
收藏
得分:0 
看过没错的源码
但我写的时候 老是不成功
编辑器codeblocks
问题何在

宁静致远
2012-01-12 08:50
唯佳
Rank: 2
等 级:论坛游民
帖 子:42
专家分:44
注 册:2012-1-11
收藏
得分:0 
还有、
typedef struct List Node;
typedef Node *Link;
什么作用啊
我初学
看到其他的链表 没这样的声明啊
照样能用

宁静致远
2012-01-12 08:52
唯佳
Rank: 2
等 级:论坛游民
帖 子:42
专家分:44
注 册:2012-1-11
收藏
得分:0 
回复 5楼 silent_world
我 试了下
但是 输不出来
还是在 一直让输名字

宁静致远
2012-01-12 10:13
唯佳
Rank: 2
等 级:论坛游民
帖 子:42
专家分:44
注 册:2012-1-11
收藏
得分:0 
懂了

宁静致远
2012-01-12 10:25
快速回复:链表的创建与释放
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029505 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved