c语言实验报告90102

上传人:tang****xu1 文档编号:132721023 上传时间:2020-05-19 格式:DOC 页数:18 大小:1.47MB
返回 下载 相关 举报
c语言实验报告90102_第1页
第1页 / 共18页
c语言实验报告90102_第2页
第2页 / 共18页
c语言实验报告90102_第3页
第3页 / 共18页
c语言实验报告90102_第4页
第4页 / 共18页
c语言实验报告90102_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《c语言实验报告90102》由会员分享,可在线阅读,更多相关《c语言实验报告90102(18页珍藏版)》请在金锄头文库上搜索。

1、计算机软件技术基础实验报告实验一:线性表的排序与查找 一实验内容a) 键盘输入一组无序数据,添加到线性表中;b) 排序线性表并输出排序结果;c) 键盘输入一个数,并插入到排好序的线性表中(要求插入后的表仍为有序表),输出结果;d) 键盘输入一个数,并从线性表中删除相应的数据,输出结果。二,源程序/ Experiment1.cpp : 定义控制台应用程序的入口点。/#include stdafx.h#include iostream#include / 程序实现有各种方法,这里给出一个实例。/ 定义一个线性表const int nMaxSize = 15;/ 最大值int nLen = 0;/

2、表中元素个数int nLinearListnMaxSize;/ 定义操作void LSort();void LOut();void LInsert(int n);void LDelete(int n);int main(int argc,TCHAR*argv)/ 输入数据并放入线性表中printf(Please input datan);/ std:cout Please input datan;int nIn = 0;for (int i = 1; i nIn;nLinearListi = nIn;nLen+;LSort();/ 排序线性表LOut();/ 输出结果printf(Please

3、 input a data to insert n);scanf(%d,&nIn);LInsert(nIn);/ 输入一个数字,并插入到线性表中LOut();printf(Please input a data to delete n);scanf(%d,&nIn);LDelete(nIn);/ 输入一个数字,并从线性表中删除LOut();char chTmp;printf(Please input a char to finish this program.);chTmp = getch();return 0;void LSort()/ 冒泡排序,由大到小 int j,F,k,M; F=nL

4、en;while(F0) k=F-1;F=0;for(j=1;j=k;j+)if(nLinearListjnLinearListj+1) M=nLinearListj;nLinearListj=nLinearListj+1;nLinearListj+1=M;F=j; void LOut()printf( n);for (int i = 1; i = nLen; i+)printf( %d, , nLinearListi );printf( n);void LInsert(int n) int i,j;i=1;while (inLen) if(nLinearListi=i;j-)nLinearL

5、istj+1=nLinearListj;nLinearListi=n;break;i+;void LDelete(int n)int i,j;for(i=1;i=nLen;i+)if(nLinearListi=n)for(j=i;j=(nLen-1);j+)nLinearListj=nLinearListj+1;nLen-;break;三 运行结果实验2:栈与队列的应用一 实验内容a) 键盘输入算数表达式,并放入队列当中;b) 应用栈的概念设计表达式求值算法; 输出表达式求值结果二源程序/ Experiment2.cpp : 定义控制台应用程序的入口点。#include stdio.h#inc

6、lude #include #include / 程序实现有各种方法,这里给出一个实例。const int MAX_LEN = 10;/ 字符串的长度const int MAX_SIZE = 30;/ 栈或队的最大元素个数/ 定义一个队列的结构struct QUEUE int nMaxSize;/ 最大值int nCount;/ 个数int nFront;/ 头int nRear;/ 尾char szQueueMAX_SIZEMAX_LEN;/定义一个栈的结构struct STACK int nMaxSize;/ 最大值int nTop;/ 栈顶char szStackMAX_SIZEMAX_

7、LEN;/ 队列的操作void InitQueue(QUEUE *q,int nMaxSize)q-nMaxSize=nMaxSize;q-nCount=0;q-nFront=0;q-nRear=0;q-szQueueMAX_SIZEMAX_LEN=0;void InQueue(QUEUE *q, char *pItem)if(q-nCount=q-nMaxSize)printf(The Queue is full!n);return;strcpy(q-szQueueq-nRear,pItem);if(q-nRear+=MAX_SIZE)q-nRear=0;q-nCount+;void Out

8、Queue(QUEUE *q, char *pItem)if(q-nCount=0)printf(The Queue is empty!n);return;strcpy(pItem,q-szQueueq-nFront);if(q-nFront+=MAX_SIZE)q-nFront=0;q-nCount-;/栈的操作void InitStack(STACK *s,int nMaxSize) s-nMaxSize=nMaxSize;s-nTop=0;s-szStackMAX_SIZEMAX_LEN=0;void PushStack(STACK *s, char *pItem)char *p;if

9、(s-nTopnMaxSize)p=s-szStacks-nTop;strcpy(p,pItem);s-nTop+;elseprintf(The stack overflow!n);return;void PopStack(STACK *s, char *pItem)char *p;if (s-nTop=0)printf(stack is empty!n);return;elsep=s-szStack-s-nTop;strcpy(pItem,p);void GetTopStack(STACK *s, char *pItem)char *p;char a10=0;if (s-nTop=0)a0=

10、;strcpy(pItem,a);elsep=s-szStacks-nTop-1;strcpy(pItem,p);/字符判断int isdigit(char x)if (x=0&xnCount!=0)OutQueue(q, x);printf(%s,x);if (isdigit(x0)/ 是数 PushStack(n,x); else/ 认为是运算符,没有考虑空格等GetTopStack(o,op);/ 获得OS栈顶运算符if (x0 = ; & op0 = ;)/ 扫描结束 printf(n result is );break;if (Priority(x) Priority(op)/ 运算符的优先级栈顶运算符

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

最新文档


当前位置:首页 > 商业/管理/HR > 商业计划书

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