计算机软件技术基础上机实验报告

上传人:pu****.1 文档编号:486294011 上传时间:2022-12-19 格式:DOC 页数:15 大小:57.52KB
返回 下载 相关 举报
计算机软件技术基础上机实验报告_第1页
第1页 / 共15页
计算机软件技术基础上机实验报告_第2页
第2页 / 共15页
计算机软件技术基础上机实验报告_第3页
第3页 / 共15页
计算机软件技术基础上机实验报告_第4页
第4页 / 共15页
计算机软件技术基础上机实验报告_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《计算机软件技术基础上机实验报告》由会员分享,可在线阅读,更多相关《计算机软件技术基础上机实验报告(15页珍藏版)》请在金锄头文库上搜索。

1、一、单链表实验内容:单链表的定义、创建、插入和删除操作,将数据显示出来。源程序 #include#define null 0#define slnode struct nodeslnode /*定义结构体*/int data; slnode *next;slnode *h;slnode *create_sl() slnode *p,*s; int x; h=(slnode *)malloc(sizeof(slnode); p=h; h-next=null; /*初始化*/ x=get_data(); while(x!=-1) /*创建,以输入-1结束*/ s=(slnode *)malloc(

2、sizeof(slnode); s-data=x; if(h-next=null) h-next=s; else p-next=s; p=s; x=get_data(); p-next=null; return h;get_data() /*获取数据元素*/int x; scanf(%d,&x); return x;slnode *insert(slnode *h,int i,int x) /*在第i个结点处插入数据元素x*/slnode *p,*s; int j;p=h;j=0; while(p-next!=null&jnext;j+; if(j!=i-1) printf(i is inva

3、lid!); return 0; else s=(slnode *)malloc(sizeof(slnode); s-data=x; s-next=p-next; p-next=s; return h;slnode *delete(slnode *h,int i) /*删除第i个结点*/slnode *p,*s; int j;p=h;j=0; while(p-next!=null&jnext; j+; if(j!=i-1) printf(i is invalid!);return 0; else if(p-next=null) printf(i is invalid!); return 0;

4、else s=p-next; p-next=s-next; free(s); return h; void print(slnode *h) /*显示链表中的数据元素*/slnode *p; printf(nNow,These records are:n); p=h-next; if(h!=null) do printf(%5d,p-data); p=p-next; while(p!=null);void main() /*主函数,调用各个函数*/slnode *h; int t,data,m; h=create_sl(); print(h); printf(n); scanf(%d%d,&t

5、,&data); h=insert(h,t,data); print(h); printf(n); scanf(%d,&m); h=delete(h,m); print(h);二、栈2.1顺序栈实验内容:栈的顺序存储结构的定义、创建、插入和删除,将数据元素显示出来。 源程序#include#define max 10Typedef struct /*定义结构体*/char stackmax; int top;qstype;qstype *s;initiateqs() /*初始化*/s-top=-1; return s;int push() /*入栈*/int x; if(s-top=max-1

6、) /*栈满则结束*/ return 0; else while(x=get_data()!=-1) s-top+; s-stacks-top=x; /*将x进栈*/ return 1; get_data() int x; scanf(%d,&x); return x;main()int sign; qstype *s; s=initiateqs(); sign=push(); if(sign=0) printf(overflow); else int p; p=s-top; while(p!=-1) printf(%5d,s-stackp); /*将栈中元素显示出来同时不改变栈中元素*/ p

7、-; printf(n); if(s-top=-1) printf(null); else while(s-top!=-1) printf(%5d,s-stacks-top); /*只能删除栈顶元素*/ s-top-; printf(n); /*将栈中元素显示出来同时删除栈中元素*/2.2链式栈实验内容:栈的链式存储结构的定义、创建、插入和删除,将数据元素显示出来。 源程序#include#define null 0typedef struct node /*定义结构体*/int data; struct node *next;slnode;slnode *h;initiatels() /*初

8、始化*/h=(slnode *)malloc(sizeof(slnode); h-next=null; /*创建头结点*/ return h;pushls(slnode *h,int x) /*把数据元素插入栈中*/slnode *p; p=(slnode *)malloc(sizeof(slnode); p-data=x; p-next=h-next; h-next=p;main()int ch; slnode *h,*p; h=initiatels(); scanf(%d,&ch); while(ch!=-1) /*输入以-1结束*/ pushls(h,ch); scanf(%d,&ch)

9、; p=h-next; while(p-next!=null) /*输出栈中元素同时删除*/ p=h-next; h-next=p-next; ch=p-data; printf(%5d,ch); printf(n);三、队3.1顺序队实验内容:队的顺序存储结构的定义、创建、插入和删除,将数据元素显示出来。 源程序 #include#define max 10typedef structint queuemax; int front;int rear;qqtype; qqtype *q;void *initiateqq() /*初始化*/q-front=-1; q-rear=-1;int en

10、terqq(qqtype *q) /*入队*/int x; if(q-rear=max-1) /*队已满/ return 0; else while(x=get_data()!=-1) q-rear+;q-queueq-rear=x; return 1;get_data() /*输入数据元素*/ int x; scanf(%d,&x); return x;main()int sign; qqtype *q; q=initiateqq(); if(sign=enterqq(q)=1) printf(creat queue:n); while(q-front!=q-rear) /*输出出对元素*/

11、 q-front+; printf(%5d,q-queueq-front); printf(n);3.2链式队实验内容:队的链式存储结构的定义、创建、插入和删除,将数据元素显示出来。 源程序#include#define null 0typedef struct nodeint data; struct node *next;slnode;typedef struct /*定义链式队列结构体*/slnode *h; slnode *rear;lqtype;void initiatelq(lqtype *q)q-h=(slnode *)malloc(sizeof(slnode); q-rear=

12、q-h; q-h-next=null;void enterlq(lqtype *q) /*入队*/int x; while(x=get_data()!=-1) slnode *p; p=(slnode *)malloc(sizeof(slnode); p-data=x; p-next=null; if(q-h=null) q-h=p; q-rear-next=p; q-rear=p;get_data() /*输入数据元素*/ int x; scanf(%d,&x); return x;int deletelq(lqtype *q) /*出队*/slnode *p; int x; if(q-h-next=null) return -1; /*队以空*/ elsep=q-h-next;q-h-next=p-next;x=p-data;free(p); if(q-h-next=null) q-rear-next=null; return x; /*返回队

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号