队列 实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}Lqueue; /*初始化并建立链队列*/ void creat(Lqueue *q) { Qnodetype *h; int i,n,x; printf("输入将建立链队列元素的个数:n= "); scanf("%d",&n); h=(Qnodetype*)malloc(sizeof(Qnodetype)); h->next=NULL; q->front=h; q->rear=h; for(i=1;i<=n;i++) { printf("链队列第%d个元素的值为:",i); scanf("%d",&x); Lappend(q,x); } } /*入链队列*/ void Lappend(Lqueue *q,int x) { Qnodetype *s; s=(Qnodetype*)malloc(sizeof(Qnodetype)); s->data=x; s->next=NULL; q->rear->next=s; q->rear=s; } /*出链队列*/ ElemType Ldelete(Lqueue *q) { Qnodetype *p; ElemType x; if(q->front==q->rear) { printf("队列为空!\n"); x=0; } else { p=q->front->next; q->front->next=p->next;
实验 此次试验难度较大,运行不太顺利,望老师可以指点一 感想 下。。。
入队出队试验基本过程还是可以理解,但整体嵌入C语言结构 还是不太明白,看来要恶补了。。。
实验 名称 班 级 姓名 实验 目的 实验 环境 实验 内 容、 算法 描述 及运 行结 果
队列
专业 学号
软件工程
1.掌握队列的顺序表示和实现。 2.掌握队列的链式表示和实现。 Visual c 实验内容: 编写一个程序实现链队列的各种基本运算,并在此基础上设 计一个主程序,完成如下功能: (1)初始化并建立链队列 (2)入链队列 (3)出链队列 (4)遍历链队列 typedef struct node { int data; struct node *next; }JD; typedef JD * Link; Link front=NULL; Link rear=NULL; void addqueue(int value) {
creat(p); display(p); }break; case 2: { printf("请输入队列元素的值:x="); scanf("%d",&x); Lappend(p,x); display(p); }break; case 3: { printf("出链队列元素:x=%d\n",Ldelete(p)); display(p); }break; case 4: {display(p);}break; case 5: {exit (0);} } }while (cord<=5); }
Baidu Nhomakorabea
if(p->next==NULL) q->rear=q->front; x=p->data; free(p); } return(x); } /*遍历链队列*/ void display(Lqueue *q) { Qnodetype *p; p=q->front->next; /*指向第一个数据元素节点 */ printf("\n链队列元素依次为:"); while(p!=NULL) { printf("%d-->",p->data); p=p->next; } printf("\n\n遍历链队列结束! \n"); } main() { Lqueue *p; int x,cord; printf("\n*****第一次操作请选择初始化并建立链队列!*****\n "); do { printf("\n 链队列的基本操作\n "); printf("=========================================\n"); printf(" 主菜单 \n"); printf("=========================================\n"); printf(" 1 初始化并建立链队列 \n"); printf(" 2 入链队列 \n"); printf(" 3 出链队列 \n"); printf(" 4 遍历链队列 \n"); printf(" 5 结束程序运行 \n"); printf("==========================================\n"); scanf("%d",&cord); switch(cord) { case 1: { p=(Lqueue *)malloc(sizeof(Lqueue));
Link newnode; newnode=(Link)malloc(sizeof(JD)); newnode->data=value; newnode->next=NULL; if(rear = =NULL) front = newnode; else { rear -> next = newnode; rear = newnode; } { } int delqueue( ) Link top; int temp; if(front !=NULL) { top=front; front=front->next; temp=top->data; free(top); return temp; } else return -1; }
运行未成功,有四个错,不知道如何修改,我知道前面应该 用标准C语言格式,#include <studio.h > …void main。。。可 是加上后错误反而变多了,望老师可以辅导一下。。。 以下是老师给的参考程序,以及我的运行结果。。。里面句 式比较复杂,还是有些不太明白
#include<stdio.h> #include<stdlib.h> #define ElemType int typedef struct Qnode { ElemType data; struct Qnode *next; }Qnodetype; typedef struct { Qnodetype *front; Qnodetype *rear;