云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据结构栈和队列实验报告 - 图文

数据结构栈和队列实验报告 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/5/23 2:23:41

int main() {

int n;

scanf(\

printf(\的阶乘为:\ printf(\ return 0; }

运行结果如下:

2.2 哈诺塔: 代码如下:

#include

int Hanoi(int n,char a,char b,char c) {

if(1 == n)

printf(\

else{

Hanoi(n-1,a,c,b);

printf(\ Hanoi(n-1,b,a,c);

}

return 0; }

第 9 页 共 17 页

int main() {

int n;

char a='A',b='B',c='C'; printf(\请输入汉诺塔的层数: \ scanf(\ Hanoi(n,a,b,c); printf(\ return 0; }

运行结果如下: n=3时

n=4时

n=5时

n=6时

由3,4,5可推知n层哈诺塔需要移动 2?1次; n=6时,需要移动63次。

第 10 页 共 17 页

n3. 队列的出队和入队 代码如下:

#include #include #include

#define OK 1 #define ERROR 0

#define OVERFLOW -1

typedef char ElemType; //default ElemType = char typedef int Status; //Return Value

/*队列节点的申明*/

typedef struct node{ ElemType data;

struct node *next; }QNode,*QuePtr; /*链式队列*/

typedef struct{

QuePtr front; //队头指针

QuePtr rear; //队尾指针,指向队尾元素的下一位 }LinkQueue;

Status InitQueue(LinkQueue *q) //初始化队列 {

q->front = q->rear = (QuePtr)malloc(sizeof(QNode)); q->front->next = NULL; return OK; }

Status EnQueue(LinkQueue *q,ElemType e) //将元素e入队列 {

QuePtr temp = (QuePtr)malloc(sizeof(QNode)); //创建新结点 if(!temp) return OVERFLOW;

temp->data = e; //初始化新结点的数据为e

temp->next = NULL; //队列只能从队尾插入所以下一个结点初始化为NULL q->rear->next = temp;

第 11 页 共 17 页

q->rear = temp; //将指向队尾的指针指向新结点

return OK; }

Status CreateQueue(LinkQueue *q /*,char a[]*/) //创建队列 {

InitQueue(q); int k;

printf(\请输入队列元素个数:\ scanf(\

printf(\请输入队列元素: \\n\ for(int i=0;i

scanf(\ EnQueue(q,a); }

// for(int i=0;i

return OK; }

Status DeQueue(LinkQueue *q,ElemType *e) //队头的结点出队 {

if(q->front == q->rear) return ERROR;

QuePtr temp = q->front->next; //初始化temp为要出队的结点的指针 if(q->front->next == q->rear) q->rear = q->front; *e = temp->data; //将出队的数据元素存入*e

q->front->next = temp->next; //下一个结点成为队头

free(temp); //删除要出队的结点 return OK; }

bool IsEmpty(LinkQueue *q) //判断队列是否为空 {

第 12 页 共 17 页

搜索更多关于: 数据结构栈和队列实验报告 - 图文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

int main() { int n; scanf(\ printf(\的阶乘为:\ printf(\ return 0; } 运行结果如下: 2.2 哈诺塔: 代码如下: #include int Hanoi(int n,char a,char b,char c) { if(1 == n) printf(\ else{ Hanoi(n-1,a,c,b); printf(\ Hanoi(n-1,b,a,c); }

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com