实现了二项队列的基本功能,参考书籍 数据结构与算法分析 C描述
头文件
#ifndef _BINQUEUE_H
#define _BINQUEUE_H
struct Binnode;
struct Collection;
typedef struct Collection *BinQueue;
typedef struct Binnode *BinTree;
typedef int Item;
typedef struct Binnode *Position;
BinQueue initial(void);
int isEmpty(BinQueue Q);
static BinTree combineTree(BinTree b1,BinTree b2);
static BinTree make_tree(Item it);
BinQueue merge(BinQueue Q1,BinQueue Q2);
BinQueue insert(Item it,BinQueue Q);
Item deleteMin(BinQueue Q);
#endif
struct Binnode{
Item item;
Position leftChild;
Position nextBro;
};
struct Collection{
int size;
BinTree *forest;
};
实现源文件
#include"binqueue.h"
#include<stdio.h>
#include<stdlib.h>
#define TREESIZE 20
#define NODESIZE 2<<20-1
BinQueue initial(){
BinQueue Q;
Q=(BinQueue)malloc(sizeof(struct Collection));
if(Q==NULL){
puts("arrange collection fail");
exit(1);
}
Q-&

本文介绍了如何使用C语言实现二项队列,详细阐述了相关数据结构与算法分析,参考自专业书籍。
最低0.47元/天 解锁文章
390

被折叠的 条评论
为什么被折叠?



