ImageVerifierCode 换一换
格式:DOCX , 页数:57 ,大小:46.15KB ,
资源ID:6149939      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6149939.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构代码.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构代码.docx

1、数据结构代码/ all1.cpp : Defines the entry point for the console application./带有头结点的链表综合#include stdafx.h#include stdio.h#include stdlib.h#include typedef struct Lnode char data10; struct Lnode *next;listline;/*定义头接点(head),前驱接点(r),当前接点(p),零时接点(temp)*/listline *head,*r,*p,*temp;void menu() puts(); puts(=);

2、 printf(1.创建新链表-1n); printf(2.插入新元素-2n); printf(3.删除旧元素-3n); printf(4.查找旧元素-4n); printf(5.倒置原链表-5n); printf(6.显示所有-6n); printf(7.退出-7n); puts(=); puts();void creater(int h) int i; if(head=(listline *)malloc(sizeof(listline)=NULL) printf(n不能创建链表); exit(1); r=head; for(i=1;inext=NULL; r-next=p; printf

3、(输入第%d个元素: ,i); scanf(%s,&p-data); r=p; void print(void) temp=head-next; printf(n); while(temp!=NULL) printf(%s ,temp-data); temp=temp-next; void turnlist()/*倒置链表函数*/ r=head-next; p=r-next; r-next=NULL; while(p!=NULL) temp=p-next; p-next=r; r=p; p=temp; head-next=r;void insert(int n,char newdata10)

4、int j; p=head-next; j=0; while(p & jnext; j+; r=(listline *)malloc(sizeof(listline); strcpy(r-data,newdata); r-next=p-next; p-next=r;void del_list(int n) int j; char e10; p=head-next; j=0; while(p & jnext; j+; r=p-next; p-next=r-next; strcpy(e,r-data); free(r);void main(void) int select,length,n; ch

5、ar name110; head=NULL; while(1) menu(); scanf(%d,&select); switch(select) case 1: printf(n请输入你要建立的链表的长度: ); scanf(%d,&length); creater(length); printf(n以下为你链表中的所有元素: ); puts( ); print(); puts( ); printf(n链表已创建,返回n); getchar(); puts( ); break; case 2: if(head=NULL) printf(n请先建立链表,按任意键返回 n); getchar()

6、; break; printf(请输入你要在第几个元素后面插入新元素:n); scanf(%s,&n); printf(请输入你要插入的新元素:n); scanf(%s,&name1); insert(n,name1); printf(n插入成功,以下为插入后的链表: ); print(); puts(); break; case 3: if(head=NULL) printf(n请先建立链表,按任意键返回 n); getchar(); break; printf(请输入你要删除第几个元素:n); scanf(%s,&n); del_list(n); printf(n删除成功,以下为插入后的链

7、表: ); print(); puts(); break; case 5: if(head=NULL) printf(nn出错,返回n); break; else printf(n以下为原链表:); print(); printf(nn以下为倒置后的链表:); turnlist(); print(); printf(nn倒置成功,按任意键返回n); getchar(); break; case 6: printf(n以下为你链表中的所有元素: ); puts( ); print(); puts( ); break; case 7: exit(0); puts(); default: print

8、f(n输入错误,请重新选择,返回n); getchar(); / text1.cpp : Defines the entry point for the console application./#include stdafx.h#include stdio.h#include stdlib.h#include iostreamusing namespace std;#define stack_init_size 100#define stackincreament 10struct Sqstack char *top; char *base; int stacksize;void inits

9、tack(Sqstack &S) S.base=(char *)malloc(stack_init_size * sizeof(char); if(!S.base) puts(error); S.top=S.base; S.stacksize=stack_init_size;void push(Sqstack &S,char e) if(S.top-S.base=S.stacksize) S.base=(char *)realloc(S.base,(S.stacksize+stackincreament)*sizeof(char); if(!S.base) puts(error); S.top

10、=S.base+S.stacksize; S.stacksize+=stackincreament; *S.top+=e;void pop(Sqstack &S,char &e) if(S.top=S.base) puts(error); e=*-S.top;int gettop(Sqstack S,char &e) if(S.top=S.base) puts(error); e=*(S.top-1); return(e);int empty(Sqstack &S) if(S.top=S.base) return 1; else return 0;int main() struct Sqsta

11、ck S; char str20=0; initstack(S); puts(输入一串表达式:); gets(str); int i=0,flag1=0,flag2=0; char e1,e2; int a=-1; while(a!=1) switch(stri) case #: a+;break; case (: push(S,();break; case : push(S,);break; case : push(S,);break; case ): if(gettop(S,e1)=() pop(S,e2); else push(S,); flag1=1; break; case : if

12、(gettop(S,e1)=) pop(S,e2); else push(S,); flag1=1; break; case : if(gettop(S,e1)=) pop(S,e2); else push(S,); flag1=1; break; default: break; i+; if(empty(S) puts(表达式合法); else puts(表达式不合法); / text1.cpp : Defines the entry point for the console application./#include stdafx.h#include stdio.h#include st

13、dlib.h#include iostreamusing namespace std;#define stack_init_size 100#define stackincreament 10struct Sqstack int *top; int *base; int stacksize;void initstack(Sqstack &S) S.base=(int *)malloc(stack_init_size * sizeof(int); if(!S.base) puts(error); S.top=S.base; S.stacksize=stack_init_size;void pus

14、h(Sqstack &S,int e) if(S.top-S.base=S.stacksize) S.base=(int *)realloc(S.base,(S.stacksize+stackincreament)*sizeof(int); if(!S.base) puts(error); S.top=S.base+S.stacksize; S.stacksize+=stackincreament; *S.top+=e;void pop(Sqstack &S,int &e) if(S.top=S.base) puts(error); e=*-S.top;void gettop(Sqstack

15、S,int &e) if(S.top=S.base) puts(error); e=*(S.top-1);int empty(Sqstack &S) if(S.top=S.base) return 1; else return 0;int main() struct Sqstack S; initstack(S); int a,b=0; puts(please enter a number you want to change); scanf(%d,&a); puts(enter a Hexadecimal numbers you want); scanf(%d,&n) while(a) pu

16、sh(S,a%n); a=a/n; while (!empty(S)/用while输入所有的数据 pop(S,b); coutb next=NULL; return 1;char DestoryQueue(LinkQueue &Q) while(Q.front) Q.rear=Q.front-next; free(Q.front); Q.front=Q.rear; return 1;char EnQueue(LinkQueue &Q,char e) p=(QueuePtr)malloc(sizeof(Qnode); if(!p) puts(error); p-data=e; p-next=NU

17、LL; Q.rear-next=p; Q.rear=p return 1;char DeQueue(LinkQueue &Q,char &e) if(Q.front=Q.rear) puts(error); p=Q.front-next; e=p-data; Q.front-next=p-next; if(Q.rear=p) Q.rear=Q.front; free(p); return 1;void mian(void) 二叉树1对题目要有需求分析 在需求分析中,将题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,设计或叙述解决此问题的算法。 给出实现功能的一组或多组测试数据,

18、程序调试后,将按照此测试数据进行测试的结果列出来。 如果程序不能正常运行,写出实现此算法中遇到的问题和改进方法; 2对题目要有相应的源程序 源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。(注释量占总代码的四分之一) 程序能够运行,要有基本的容错功能。尽量避免出现操作错误时出现死循环; 3最后提供的主程序可以象一个应用系统一样有主窗口,通过主菜单和分级菜单调用课程设计中要求完成的各个功能模块,调用后可以返回到主菜单,继续选择其他功能进行其他功能的选择。 二叉树的建立与遍历 问题描述 建立一棵二叉树,并对其进行遍历(先序、中序、后序),打印输出遍

19、历结果。 基本要求 从键盘接受输入,以二叉链表作为存储结构,建立二叉树,并对其进行遍历(先序、中序、后序),将遍历结果打印输出。 以下是我的数据结构实验的作业:肯定好用,里面还包括了统计树的深度和叶子数!记住每次做完一个遍历还要重新输入你的树哦! #include stdio.h #include string.h #define NULL 0 typedef struct BiTNode char data; struct BiTNode *lchild,*rchild; BiTNode,*BiTree; BiTree Create(BiTree T) char ch; ch=getchar

20、(); if(ch=#) T=NULL; else if(!(T=(BiTNode *)malloc(sizeof(BiTNode) printf(Error!); T-data=ch; T-lchild=Create(T-lchild); T-rchild=Create(T-rchild); return T; void Preorder(BiTree T) if(T) printf(%c,T-data); Preorder(T-lchild); Preorder(T-rchild); int Sumleaf(BiTree T) int sum=0,m,n; if(T) if(!T-lchi

21、ld)&(!T-rchild) sum+; m=Sumleaf(T-lchild); sum+=m; n=Sumleaf(T-rchild); sum+=n; return sum; void zhongxu(BiTree T) if(T) zhongxu(T-lchild); printf(%c,T-data); zhongxu(T-rchild); void houxu(BiTree T) if(T) houxu(T-lchild); houxu(T-rchild); printf(%c,T-data); int Depth(BiTree T) int dep=0,depl,depr; i

22、f(!T) dep=0; else depl=Depth(T-lchild); depr=Depth(T-rchild); dep=1+(depldepr?depl:depr); return dep; main() BiTree T; int sum,dep; T=Create(T); Preorder(T); printf(n); zhongxu(T); printf(n); houxu(T); printf(n); sum=Sumleaf(T); printf(%d,sum); dep=Depth(T); printf(n%d,dep); 二叉树2/* 二叉树的建立与遍历 */ # in

23、clude # include typedef int Etype; typedef struct BiTNode /* 树结点结构 */ Etype data; struct BiTNode *lch,*rch; BiTNode; /* 函数原形声明 */ BiTNode *creat_bt1(); BiTNode *creat_bt2() void inorder(BiTNode *p); void numb(BiTNode *p); BiTNode *t; int n,n0,n1,n2,; /* 主函数 */ main() char ch; int k; do printf(nnn);

24、printf(nn 1. 建立二叉树方法1 ); printf(nn 2. 建立二叉树方法2); printf(nn 3. 中序递归遍历二叉树); printf(nn 4. 计算树中结点个数); printf(nn 5. 结束程序运行); printf(n=); printf(n 请输入您的选择 (1,2,3,4,5,6); scanf(%d,&k); switch(k) case 1:t=creat_bt1( );break; /* 调用性质5建立二叉树算法 */ case 2:t=creat_bt2( );break; /* 调用递归建立二叉树算法 */ case 3: inorder(t); /* 调用中序遍历 */ printf(nn 打回车键,继续。“); ch=getch(); break; case 4: n=0;n0=0 ; n1=0; n2

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1