[库]泛型队列

/*
  Author:avalon qq:1243128
  Date: 05-10-04 21:18
  Description:泛型队列
*/

#ifndef  AVALON_QUEUE_H
#define  AVALON_QUEUE_H

#ifndef  AVA_BOOL
#define  AVA_BOOL
#define  TRUE      1
#define  FALSE     0
typedef  int    BOOL;
#endif

typedef struct Link * LHandle;

extern LHandle InitQueue(size_t type);
/*构造*/
extern BOOL  QueueEmpty(LHandle q);
/*empty?*/
extern int   QueueLength(LHandle q);
/*length*/
extern BOOL  GetHead(LHandle q, void * elem);
/*若队列不为空,则COPY队头元素,并返回TRUE*/
extern BOOL  EnQueue(LHandle q,void * elem);
/*插入元素elem为新的队尾元素*/
extern BOOL DeQueue(LHandle q,void * elem);
/*如elem不为空,则将删除后的头结点值赋值给elem,返回TRUE*/
extern BOOL ClearQueue(LHandle q);
/*清空*/
extern BOOL DestroyQueue(LHandle * q);
/*销毁*/
#endif


 


 

//

///

/*
  Author:avalon qq:1243128
  Date: 05-10-04 21:18
  Description:泛型队列
*/
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#ifndef  AVA_BOOL
#define  AVA_BOOL
#define  TRUE      1
#define  FALSE     0
typedef  int    BOOL;
#endif

typedef struct Node{
    void         *  data;/*数据指针*/
    struct Node  *  next;/*下一结点*/
}Node , *NHandle;

typedef struct Link{
    NHandle  front;/*头指针*/
    NHandle  rear ;/*尾指针*/
    int      size ;/*长度*/
    size_t   type ;
}Link , *LHandle;
/*
内部函数
*/
static  NHandle AllocNode(LHandle S,void * elem)
{/*分配结点*/
 NHandle node_temp = (NHandle)malloc(sizeof(Node));
 void  * data_temp ;
  assert(NULL !=node_temp);
  assert(NULL !=S);
   assert(NULL !=elem);
    data_temp = malloc(S->type);
    assert(NULL !=data_temp);
    memcpy(data_temp,elem,S->type);/*copy data*/
    node_temp->data = data_temp;   /*member data 赋值*/
             
    return node_temp;
}
static BOOL  FreeNode(NHandle * node)
{/*释放结点*/
    free( (*node)->data);
    free( *node);
    return TRUE;
}
/*
外部函数
*/           
extern LHandle InitQueue(size_t type)
{/*构造*/
 LHandle temp = (LHandle)malloc(sizeof(Link));
 assert(NULL !=temp);
 temp->front = temp->rear =NULL;
 temp->size  = 0;
 temp->type  = type;
 return temp;
}
extern BOOL  QueueEmpty(LHandle q)
{/*empty?*/
 assert(NULL !=q);
  return ( 0==q->size)?TRUE:FALSE;
}
extern int   QueueLength(LHandle q)
{/*length*/
    assert(NULL !=q);
    return q->size;
}
extern BOOL  GetHead(LHandle q, void * elem)
{/*若队列不为空,则COPY队头元素,并返回TRUE*/
    assert(NULL !=q);
    assert(NULL !=elem);
    if(NULL== q->front)return FALSE;
    memcpy(elem,q->front->data,q->type);
    return TRUE;
}
extern BOOL  EnQueue(LHandle q,void * elem)
{/*插入元素elem为新的队尾元素*/
    NHandle temp ;
    assert(NULL !=q);
    assert(NULL !=elem);
    temp = AllocNode(q,elem);
    /**/
    if((q->size)++ != 0){/*长度加1*/
        q->rear->next = temp;
        q->rear = q->rear->next;
    }
    else{
        q->front=q->rear=temp;
    }
    return TRUE;
}
extern BOOL DeQueue(LHandle q,void * elem)
{/*如elem不为空,则将删除后的头结点值赋值给elem,返回TRUE*/
    NHandle temp;
    assert(NULL !=q);   
    if(0==q->size)return FALSE;
    temp= q->front->next;/*新的队头*/
   
    if(NULL!=elem)/*拷贝到elem*/
        memcpy(elem,q->front,q->type);   
    FreeNode( &(q->front));
    if( (q->size)-- !=1){
        q->front = temp;
    }
    else{
        q->front =q->rear =NULL;
    }
    return TRUE;
}
extern BOOL ClearQueue(LHandle q)
{/*清空*/
    assert(NULL !=q);
    while(0 !=q->size)
     DeQueue(q,NULL);
    return TRUE;
}
extern BOOL DestroyQueue(LHandle * q)
{/*销毁*/
    assert(q);
    assert(*q);
    ClearQueue(*q);
    free(*q);
    return TRUE;
}            
           

### 寻找医院相关的HTML模板 对于寻找与医院相关的HTML模板,可以考虑使用专门设计用于医疗行业的前端框架或者模板。这些资源通常提供专业的布局和组件,能够满足医疗机构的需求。 #### 使用Bootstrap为基础的Hospital HTML Templates 存在一些基于Bootstrap构建的专业级管理面板模板,例如 **Clear – Bootstrap + VueJS Admin Template** 是一种面向专业人士的清晰简洁的管理模板[^1]。虽然这不是专门为医院创建的,但是其模块化的结构允许定制化开发以适应不同行业需求,包括但不限于医疗服务领域。 为了找到更具体的医院主题HTML模板,建议访问以下平台: - **TemplateMonster**: 提供多种类的网站模板,其中也涵盖了健康护理类目下的产品。 - **ThemeForest**: 这里有大量由社区贡献者提交的设计作品,可以通过筛选条件来查找适合医院使用的网页模板。 - **WrapPixel**: 专注于React, Angular 和Vue.js等现代JavaScript框架的同时提供了许多高质量的企业级UI套件,部分可能适用于医疗场景的应用程序建设。 #### 考虑国际化支持的重要性 当选择或自定义一个医院专用的HTML模板时,考虑到多语言环境的支持是非常重要的。通过利用像Django这样的Web应用框架所提供的国际化工具有助于实现这一点。在实际操作过程中可以在模板文件内部运用 `{% language 'en' %}` 类似的语法结构来进行特定语种的内容渲染设置[^2]。这使得最终用户能够在不改变URL的情况下切换显示的语言版本。 #### 解决潜在错误提示 值得注意的是,在选用任何第三方模板之前应该仔细阅读文档并测试兼容性问题。比如遇到类似于 `Error resolving template "xxx", template might not exist or might not be accessible` 的报错信息,则可能是由于视图层试图加载不存在或是权限不足无法读取的目标页面造成的[^3]。确保所选模板已经过充分调试并且能在目标环境中正常工作至关重要。 ```html <!-- Example of using {% language %} tag --> {% extends "base.html" %} {% load i18n %} {% language LANGUAGE_CODE %} ... {% endlanguage %} ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值