已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构上机参考程序一元多项式表示及相加程序如下:/Add Polynomial Pa and Pb#include#include#include#includeStuct Term float coef; int expn; struct Term *next;LinkList;LinkList *CreateList_L(int n) int i; LinkList *p,*L; L=(LinkList *)malloc(sizeof(LinkList); L-next=NULL; for(i=n;i0;-i) p=(LinkList *)malloc(sizeof(LinkList); printf(“input coef=”); scanf(“%d”,&p-coef);printf(“n”); printf(“input expn=”); scanf(“%d”,&p-expn);printf(“n”);p-next=L-next; L-next=p; /end of forReturn L;/end of function CreateListChar cmp(int qa_expn,int qb-expn) if(qa_expn=qb_expn) return=; else if(qa_expnqb_expn)return; else returnnext; qb=pb-next; pre=pa; while(qa&qb) switch(cmp(qa-expn,qb-expn) case next; break;case=: sum=qa-coef+qb-coef; if(sum!=0.0) qa-coef=sum;pre=qa; else pre-next=qa-next;free(qa); qa=pre-next;u=qb;qb=qb-next; free(u); break; case: u=qb-next; qb-next=qa;pre-next=qb; pre=qb; qb=u; break; /end of switch if(!qa)pre-next=qb; free(qb); return pa;end of Addpolyn() functionVoid main()LinkList *pa,*pb,*pc,*p;int NodeNum_pa,NodeNum_pb; Printf(“input NodeNum_pa:”); Scanf(“%d”,& NodeNum_pa); printf(“Please input the pa.coef and pa.expn”); pa=CreateList_L(NodeNum_pa); Printf(“input NodeNum_pb:”); Scanf(“%d”,& NodeNum_pb); printf(“Please input the pb.coef and pb.expn”); pb= CreateList_L( NodeNum_pb);Pc=Addpolyn(pa,pb);P=pc;printf(“result:n”);while(p-next) p=p-next; printf(“pc.coef=%d, pc.expn=%dn”, p-coef, p- expn ); /end of while getch();end of main() function行编辑程序。例如:输入:whli#ile(s#*s) outchaputchar(*s=#+);输出:while(*s) putchar(*s+);程序如下:#include#include#define SIZE 100#define char SElemTypetypedef struct SElemType sqSIZE int top; SqStack;void push(SqStack *s,SElemType e) if(s-top= =SIZE)printf(“overflow!n”); elses-top=s-top+1 ;s-sqs-top=e; /Pushvoid pop(SqStack *s) if(s-top=-1)printf(“error!n”); else s-top-;/Popmain() int i; SqStack S; SElemType ch;S.top=-1; printf(“Input:n”);ch=getchar(); while(ch!=$) while(ch!=$&ch!=n) switch(ch) case#:Pop(&S);break;case:s.top=-1;break; default:Push(&S,ch);break; ch=getchar(); printf(“Output:n”); for(i=0;i=s.top;i+) printf(“c%”,s.sqi); s.top=-1; if(ch!=$) printf(“Input:”); ch=getchar(); 快速转置程序#include#define SIZE 100typedef struct int i,j; int e;Triple;typedef struct Triple dataSIZE; int mu,nu,tu;TSMatrix;Main()TSMatrix T,M; int t,p,q,col ,numSIZE,cpotSIZE; printf(“Input M.mu,M.nu,M.tu:”); scanf(“%d,%d,%d”,&M.mu,&M.nu,&M.tu); printf(“n”); printf(“Input Matrix M:n”); for(t=1;t=M.tu;t+) scanf(“%d,%d,%d”,&M.datat.i,&M.datat.j ,&M.datat.e); printf(“n”);书中代码建立排序的二叉树和遍历二叉树 #includetypedef struct bnode int data; struct bnode *left,*right; BiTree; BiTree * insert(BiTree *b, BiTree *s) if(b=NULL) b=s; else if(s-data=b-data) ; else if(s-datadata) b=insert(b-left,s); else if(s-datab-data) b=insert(b-right,s); return b;BiTree * createbitree(BiTree* bt) int x; BiTree *s; printf(“Input;”); do scanf(“%d”,&x); s=(bnode *)malloc(sizeof(bnode); s-data=x; s-left=NULL; s-right=NULL; bt=insert(bt,s); while(x!=-1); return bt;void inorder(BiTree * bt) if(bt != NULL) inorder(bt-lchild); printf(%d ,bt-data); inorder(bt-rchild); void main() BiTree*root; root=NULL; root=createbitree(BiTree* root); inorder(BiTree * root);图的遍历(深度优先)#include#define MAX_VERTEX_NUM 20typedef int VertexType;typedef struct ArcNodeint adjvex;Struct ArcNode *nextarc;ArcNode;typedef struct VnodeVerterType data;ArcNode *firstarc;VNode,AdjListMAX_VERTEX_NUM ;int n;boll visitedMAX_VERTEX_NUM ;Void create(AdjList *g)ArcNode *p,*q;int m,s,d,i;Printf(“请输入顶点数和边数:”);Scanf(“%d,%d”,&n,&m);for(i=1;i=n;i+)gi.data=i;gi.firstarc=NULL;for(i=1;i=m;i+)Printf(“第%d条边的起始顶点编号和终止顶点编号:”,i);Scanf(“%d,%d”,&s,&d);While(sn|dn)Printf(“编号超出范围,重新输入:”);Scanf(“%d,%d”,&s,&d);P= malloc(sizeof(ArcNode);P-adjvex=d;P-nextarc=NULL;if(!gs.firstarc) gs.firstarc=p;else q=gs.firstarc; while(q-nextarc) q=q-nextarc; q-nextarc=p; Void dfs(AdjList *g,int m)int w;ArcNode *p;if(!visitedm) printf(“%d”,gm.data);Visitedm=true;P=gm.firstarc;While(p)W=p-adjvex;if(!visitedw) dfs(g,w);P=p-nextarc;Void main()int i;AdjList g;Create(&g);for(i=1;i=n;i+) visitedi=false;for(i=1;i=n;i+) dfs(&g,i);参见书168页图输入:8,181,21,32,12,42,53,13,63,74,24,85,25,86,36,77,37,68,48,5输出:12485367广度搜索 void bfs(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届江西省宜春市昌黎实验学校化学高二第一学期期末质量检测试题含答案
- 2025年建筑工程进度款支付合同协议
- 某食品机械厂年度研发工作总结
- 北师大版八年级数学上册第2章 实数 单元测试(附答案)
- 某证券公司KPI绩效指标体系方案
- 心理学在医学研究中的重要性与应用
- 教育行业 - 在线教育平台搭建方案
- 智能家居之智能网关营销策略
- 首饰联名方案策划书3
- 康复科运营方案
- 2025宁夏回族自治区大学生乡村医生专项计划招聘工作人员13人考试笔试模拟试题及答案解析
- 学校食堂满意度测评及管理方案
- 2025安徽清水街道招聘就业专干6人笔试考试参考试题附答案解析
- 2025云南楚雄州元谋县国有资产投资管理有限公司及所属子公司合同制员工招聘13人考试笔试备考试题及答案解析
- 小学语文教师素养大赛知识素养试题
- 北京市海淀区2025-2026学年高三上学期期中地理试题 含解析
- 施工现场安全事故应急预案
- 2025版疾病控制护理护士培训大纲
- 2025年中级消防设施操作员《理论知识》题库必做200题(含答案)
- 特种设备重大事故隐患判定标准
- DB23T 3045-2021 森林山地木栈道建设技术规程
评论
0/150
提交评论