| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 608 人关注过本帖
标题:自定义实现静态fifo及stack ,大家帮忙看看,给点改进意见
取消只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
已结贴  问题点数:10 回复次数:1 
自定义实现静态fifo及stack ,大家帮忙看看,给点改进意见
程序代码:
/******************************************************************
* Copyright (c) 2010, XX Technologies Co., Ltd.
* All rights reserved.
*
* 文件名称:u_linearStruct.c
* 文件标识:见配置管理计划书
* 摘    要:调试输出信息
*
* 取代版本:1.0
* 原作者  :zhong yunde
* 完成日期:2010年07月17日
*******************************************************************/
#include "u_def.h"
#include <stdio.h>
#include "u_linearStruct.h"
static FIFO_List g_fifo_list;
static STACK_List g_stack_list;
FIFO_List *InitFIFOList(void)
{
    UINT32 i;
    FIFO_List *list = NULL;
    list = &g_fifo_list;
    list->tailPtr = list->headPtr = 0;  // 元素个数为0
    for (i=0; i<MAX_NODE_NUM; i++)
    {
        list->node[i] = NULL;
    }
    return list;                        // 返回全局变量地址
}
INT32 AddFIFOList(char *s)
{
    if (((g_fifo_list.headPtr+1)%MAX_NODE_NUM) == g_fifo_list.tailPtr)
    {
        return -1;
    }
    g_fifo_list.node[g_fifo_list.headPtr] = s; // 说明g_fifo_list.headPtr
    g_fifo_list.headPtr++;
    g_fifo_list.headPtr %= MAX_NODE_NUM;
    return 0;
}
char* DeleteFIFOList(void)
{
    char *s = NULL;
    if (g_fifo_list.headPtr == g_fifo_list.tailPtr)
    {
        return NULL;
    }
    s = g_fifo_list.node[g_fifo_list.tailPtr];
    g_fifo_list.tailPtr++;
    g_fifo_list.tailPtr %= MAX_NODE_NUM;
    return s;
}

STACK_List *InitStackList(void)
{
    UINT32 i;
    STACK_List *list = NULL;
  
    list = &g_stack_list;
    list->tailPtr = 0;                  // 元素个数为0
    for (i=0; i<MAX_NODE_NUM; i++)
    {
        list->node[i] = NULL;
    }
  
    return list;                        // 返回全局变量地址
}
INT32 AddStackList(char *s)
{
    if ((g_stack_list.tailPtr+1) == MAX_NODE_NUM)
    {
        return -1;
    }
    g_stack_list.node[g_stack_list.tailPtr] = s; // 说明g_fifo_list.headPtr
    g_stack_list.tailPtr++;
  
    return 0;
}
char *DeleteStackList(void)
{
    char *s = NULL;
    if (g_stack_list.tailPtr == 0)
    {
        return NULL;
    }
    g_stack_list.tailPtr--;
    s = g_stack_list.node[g_stack_list.tailPtr];
    g_stack_list.node[g_stack_list.tailPtr] = NULL;
  
    return s;
}
补充头结构:
// 静态的FIFO链表结构
typedef struct FIFO_List
{
    char *node[MAX_NODE_NUM];
    UINT32 headPtr;
    UINT32 tailPtr;
}FIFO_List;

// 静态链表的栈(FILO)结构实现
typedef struct STACK_List
{
    char *node[MAX_NODE_NUM];
    UINT32 tailPtr;
}STACK_List;
搜索更多相关主题的帖子: stack fifo 静态 定义 意见 
2010-07-18 00:46
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 2楼 mxs810
编程规范是很重要,我下次注意下,谢谢指教

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-08-03 23:17
快速回复:自定义实现静态fifo及stack ,大家帮忙看看,给点改进意见
数据加载中...
 
   



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

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