设为首页 加入收藏

TOP

C 中的ADT 中的一个列表问题(一)
2014-02-14 12:55:35 来源: 作者: 【 】 浏览:476
Tags: ADT  一个 问题

    今天给大家带来的是C 语言中的ADT 中的一个列表的问题:
    #ifndef LIST_H_INCLUDED
    #define LIST_H_INCLUDED
    //#include <stdbool.h>
    #define bool int
    #define false 0
    #define true 1
    //特定于程序的声明
    #define TSIZE 45
    struct film
    {
    char title[TSIZE];
    int rating;
    };
    //一般类型定义
    typedef struct film Item;
    typedef struct node
    {
    Item item;
    struct node * next;
    } Node;
    typedef Node * List;
    //函数原型
    //操作:初始化一个列表
    //操作前:plist 指向一个列表
    //操作后:该列表被初始化为空列表
    void InitializeList(List * plist);
    //函数原型
    //操作:确定列表是否为空列表
    //操作前:plist指向一个列表
    //操作后:如果该列表为空返回true,否则返回false
    bool ListIsEmpty (const List * plist);
    //函数原型
    //操作:确定列表是否已满
    //操作前:plist指向一个已初始化的列表
    //操作后:如果该列表为满返回true,否则返回false
    bool ListIsFull (const List * plist);
    //函数原型
    //操作:确定列表中项目的个数
    //操作前:plist指向一个已初始化的列表
    //操作后:返回该列表中项目的个数
    unsigned int ListItemCount(const List * plist);
    //函数原型
    //操作:在列表尾部添加一个项目
    //操作前:item是要被增加到列表的项目
    //          plist指向一个已初始化的列表
    //操作后:如果可能的话,在列表尾部添加一个新项目,
    //          函数返回true,否则返回false
    bool AddItem (Item item,List * plist);
    //函数原型
    //操作:把函数作用于列表中的每一个节点的操作
    //操作前:plist指向一个已初始化的列表
    //        pfun指向一个函数,该函数接受
    //        一个Item参数并且无返回值
    //操作后:pfun指向的函数被作用到列表中的每一个项目一次
    void Traverse (const List *plist,void (* pfun) (Item item));
    //函数原型
    //操作:释放已分配的内存
    //操作前:plist指向一个已初始化的列表
    //操作后:为该列表分配的内存以释放,并且该列表被置为空列表
    void EmptyTheList(List * plist);
    #endif // LIST_H_INCLUDED
    List.c
    static void CopyToNode(Item item,Node * pnode);
    void InitializeList(List * plist)
    {
    *plist = NULL;
    }
    //函数原型
    //操作:确定列表是否为空列表
    //操作前:plist指向一个列表
    //操作后:如果该列表为空返回true,否则返回false
    bool ListIsEmpty (const List * plist)
    {
    if( *plist == NULL)
    return true;
    else
    return false;
    }
    //函数原型
    //操作:确定列表是否已满
    //操作前:plist指向一个已初始化的列表
    //操作后:如果该列表为满返回true,否则返回false
    bool ListIsFull (const List * plist)
    {
    Node * pf;
    pf = (List) malloc(sizeof(Node));
    //   if(pf)
    //    return true;
    //    else//不能这样写,因为pf != NULL ,也不能说明了pf为真。
    //    return false;
    if(pf == NULL)
    return true;
    else
    return false;
    }

   

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数组与指针区别c语言 下一篇main函数的参数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: