• 数据结构 线性表顺序队列


    //线性表顺序队列函数声明
    #ifndef _MY_SEQQUEUE_H_
    #define _MY_SEQQUEUE_H_
    
    typedef void SeqQueue;
    
    //创建线性表顺序队列
    SeqQueue* SeqQueue_Create(int capacity);
    
    //销毁线性表顺序队列
    int SeqQueue_Destroy(SeqQueue* queue);
    
    //清空线性表顺序队列
    int SeqQueue_Clear(SeqQueue* queue);
    
    //线性表顺序队列队尾添加元素
    int SeqQueue_Append(SeqQueue* queue, void* item);
    
    //线性表顺序队列队头删除元素
    void* SeqQueue_Retrieve(SeqQueue* queue);
    
    //获取线性表顺序队列队头元素
    void* SeqQueue_Header(SeqQueue* queue);
    
    //获取线性表顺序队列长度
    int SeqQueue_Length(SeqQueue* queue);
    
    //获取线性表顺序队列最大容量
    int SeqQueue_Capacity(SeqQueue* queue);
    
    #endif //_MY_SEQQUEUE_H_
    //线性表顺序队列代码实现
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include"SeqList.h"//引用线性顺序表动态库
    #include"SeqQueue.h"
    
    //创建线性表顺序队列
    SeqQueue* SeqQueue_Create(int capacity){
        return SeqList_Create(capacity);
    }
    
    //销毁线性表顺序队列
    int SeqQueue_Destroy(SeqQueue* queue){
        return SeqList_Destroy(&queue);
    }
    
    //清空线性表顺序队列
    int SeqQueue_Clear(SeqQueue* queue){
        return SeqList_Clear(queue);
    }
    
    //线性表顺序队列队尾添加元素
    int SeqQueue_Append(SeqQueue* queue, void* item){
        return SeqList_Insert(queue, item, SeqList_Length(queue));
    }
    
    //线性表顺序队列队头删除元素
    void* SeqQueue_Retrieve(SeqQueue* queue){
        return SeqList_Delete(queue, 0);
    }
    
    //获取线性表顺序队列队头元素
    void* SeqQueue_Header(SeqQueue* queue){
        return SeqList_Get(queue, 0);
    }
    
    //获取线性表顺序队列长度
    int SeqQueue_Length(SeqQueue* queue){
        return SeqList_Length(queue);
    }
    
    //获取线性表顺序队列最大容量
    int SeqQueue_Capacity(SeqQueue* queue){
        return SeqList_Capacity(queue);
    }
    //线性表顺序队列测试代码
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include"SeqQueue.h"
    
    void Test(){
        int i = 0;
        //创建一个队列
        SeqQueue * queue = SeqQueue_Create(10);
        //队列中插入元素
        for (i = 0; i < 5; i++)
        {
            SeqQueue_Append(queue, (void *)(i + 1));
        }
        //获取队列长度
        printf("队列的长度是%d
    ", SeqQueue_Length(queue));
        //获取队列的最大容量
        printf("队列的最大容量是%d
    ", SeqQueue_Capacity(queue));
        //获取队头元素
        printf("队头元素是%d
    ", (int)SeqQueue_Header(queue));
        //删除队头元素
        SeqQueue_Retrieve(queue);
        printf("删除之后队头元素是%d
    ", (int)SeqQueue_Header(queue));
        //销毁队列
        SeqQueue_Destroy(queue);
    }
    
    void main(){
        Test();
        system("pause");
    }

  • 相关阅读:
    C++指针详解
    C++中#include包含头文件带 .h 和不带 .h 的区别
    #if的使用说明
    非常简单的语音朗读功能
    C#基础笔记(第十一天)
    C#基础笔记(第十天)
    手机管理系统
    编程书籍大集合
    centos 安装多实例数据库
    Python3 网络爬虫(请求库的安装)
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5713806.html
Copyright © 2020-2023  润新知