数据结构算法问题,不会。希望大家给个代码参考。谢谢 20
1.假设有一个顺序存储结构表示的循环队列,请编写一个算法,计算该队列中当前所含有的元素个数。2.已知一棵完全二叉树用顺序存储结构表示,请编写一个C语言程序,对这棵二叉树进...
1.假设有一个顺序存储结构表示的循环队列,请编写一个算法,计算该队列中当前所含有的元素个数。
2.已知一棵完全二叉树用顺序存储结构表示,请编写一个C语言程序,对这棵二叉树进行先序遍历。
3.在一段文字中10个常用汉字及出现的频度如下:
的 地 得 于 个 和 在 再 是 有
26 6 4 15 7 6 8 5 18 5
试为这些常用汉字设计哈夫曼编码表。 展开
2.已知一棵完全二叉树用顺序存储结构表示,请编写一个C语言程序,对这棵二叉树进行先序遍历。
3.在一段文字中10个常用汉字及出现的频度如下:
的 地 得 于 个 和 在 再 是 有
26 6 4 15 7 6 8 5 18 5
试为这些常用汉字设计哈夫曼编码表。 展开
2个回答
展开全部
#include<iostream>
using namespace std;
#define MAX_QSIZE 5
typedef int ElemType;
typedef struct SqQueue
{
ElemType *base;
int front;
int rear;
};
void InitQueue(SqQueue *&Q)
{
Q=(SqQueue *)malloc(MAX_QSIZE*sizeof(SqQueue));
Q->rear=Q->front;
}
int EmptyQueue(SqQueue *Q)
{
if(Q->rear==Q->front)
return 0;
else
return 1;
}
void DestroyQueue(SqQueue *Q)
{
if(Q->base)
free(Q->base);
Q->base=NULL;
Q->front=Q->rear;
}
void ClearQueue(SqQueue *Q)
{
Q->rear=Q->front;
}
int LenghtQueue(SqQueue *Q)
{
return (Q->front-Q->rear+MAX_QSIZE)%MAX_QSIZE;
}
int EnQueue(SqQueue *&Q,ElemType &e)
{
if((Q->rear+1)%MAX_QSIZE==Q->front)
return 0;
else
Q->base[Q->rear]=e;
Q->rear=(Q->rear+1)%MAX_QSIZE;
return 1;
}
int DeQueue(SqQueue *&Q,ElemType &e)
{
if(Q->rear==Q->front)
return 0;
else
e=Q->base[Q->front];
cout<<e<<endl;
Q->front=(Q->front+1)%MAX_QSIZE;
return 1;
}
int main()
{
SqQueue *Q;
InitQueue(Q);
int a[9]={0,1,2,3,4,5,6,7,8};
for(int i=0;i<9;i++)
{
EnQueue(Q,a[i]);
}
for(i=0;i<9;i++)
{
DeQueue(Q,a[i]);
}
cout<<LenghtQueue(Q)<<endl;
return 0;
}
using namespace std;
#define MAX_QSIZE 5
typedef int ElemType;
typedef struct SqQueue
{
ElemType *base;
int front;
int rear;
};
void InitQueue(SqQueue *&Q)
{
Q=(SqQueue *)malloc(MAX_QSIZE*sizeof(SqQueue));
Q->rear=Q->front;
}
int EmptyQueue(SqQueue *Q)
{
if(Q->rear==Q->front)
return 0;
else
return 1;
}
void DestroyQueue(SqQueue *Q)
{
if(Q->base)
free(Q->base);
Q->base=NULL;
Q->front=Q->rear;
}
void ClearQueue(SqQueue *Q)
{
Q->rear=Q->front;
}
int LenghtQueue(SqQueue *Q)
{
return (Q->front-Q->rear+MAX_QSIZE)%MAX_QSIZE;
}
int EnQueue(SqQueue *&Q,ElemType &e)
{
if((Q->rear+1)%MAX_QSIZE==Q->front)
return 0;
else
Q->base[Q->rear]=e;
Q->rear=(Q->rear+1)%MAX_QSIZE;
return 1;
}
int DeQueue(SqQueue *&Q,ElemType &e)
{
if(Q->rear==Q->front)
return 0;
else
e=Q->base[Q->front];
cout<<e<<endl;
Q->front=(Q->front+1)%MAX_QSIZE;
return 1;
}
int main()
{
SqQueue *Q;
InitQueue(Q);
int a[9]={0,1,2,3,4,5,6,7,8};
for(int i=0;i<9;i++)
{
EnQueue(Q,a[i]);
}
for(i=0;i<9;i++)
{
DeQueue(Q,a[i]);
}
cout<<LenghtQueue(Q)<<endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询