![]() |
#2
mxs8102010-07-20 09:28
|

/******************************************************************
* 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;
}
补充头结构:* 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;