




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、函数实现单链表的插入算法。int ListInsert(LinkList L,int i,ElemType e) LNode *p,*s;int j; p=L;j=0; while(p!=NULL)&(jnext;j+; if(p=NULL|ji-1) return ERROR; s=(LNode *)malloc(sizeof(LNode); s-data=e; s-next=p-next )p-next=s return OK;/*ListInsert*/2、函数ListDelete_sq实现顺序表删除算法。int ListDelete_sq(Sqlist *L,int i) int k; if(iL-length) return ERROR;for(k=i-1;klength-1;k+) L-slistk=L-slistk+1 -L-Length return OK;3、函数实现单链表的删除算法。int ListDelete(LinkList L,int i,ElemType *s) LNode *p,*q; int j; p=L;j=0; while( p-next!=NULL )&(jnext;j+; if(p-next=NULL|ji-1) return ERROR; q=p-next; p-next=q-next ; *s=q-data; free(q); return OK;/*listDelete*/4、栈的基本操作函数:int InitStack(SqStack *S); /构造空栈int StackEmpty(SqStack *S);/判断栈空int Push(SqStack *S,ElemType e);/入栈int Pop(SqStack *S,ElemType *e);/出栈函数conversion实现十进制数转换为八进制数,请将函数补充完整。void conversion()InitStack(S);scanf(“%d”,&N);while(N) Push(S,N%8) ;N=N/8;while( !StackEmpty(S) )Pop(S,&e);printf(“%d”,e);/conversion5、函数实现串的模式匹配算法。int index_bf(sqstring*s,sqstring *t,int start) int i=start-1,j=0; while(ilen&jlen) if(s-datai=t-dataj) i+;j+; else i= i-j+1 ;j=0; if(j=t-len) return i-t-len+1 ; else return -1;/*listDelete*/6、二叉树后序遍历递归算法void function(Bitree *t)if(p!=NULL)function(p-lchild);function(p-rchild);printf(“%d”,p-data);7、编写求一棵二叉树中结点总数的算法。答案:(以先序遍历的方法为例)void count_preorder(Bitree *t, int *n) if(t!=NULL)*n+;count_preorder(t-lchild);count_preorder(t-lchild); 8、函数InOrderTraverse(Bitree bt)实现二叉树的中序遍历。void InOrderTraverse(BiTree bt)if( bt!=NULL )InOrderTraverse(bt-lchild);printf(“%c”,bt-data); InOrderTraverse(bt-rchild) ;9、函数depth实现返回二叉树的高度。int depth(Bitree *t)if(t=NULL)return 0;elsehl=depth(t-lchild);hr= depth(t-rchild) ;if( hlhr )return hl+1;elsereturn hr+1;10.交换二叉树结点左右子树的递归算法Bitree *function(Bitree *bt)Bitree *t,*t1,*t2;if(bt=NULL)t=NULL;elset=(Bitree *)malloc(sizeof(Bitree);t-data=bt-data;t1=function(bt-left);t2=function(bt-right);t-left=t2;t-right=t1;return(t);11、已知二叉树的先序遍历序列为ABCDEFGH,中序遍历序列为CBEDFAGH,画出二叉树。答案:二叉树形态 12、编写求一棵二叉树中结点总数的算法。答案:(以先序遍历的方法为例)void count_preorder(Bitree *t, int *n) if(t!=NULL)*n+;count_preorder(t-lchild);count_preorder(t-lchild); 13、实现图的深度优先遍历算法typedef struct int vexnum,arcnum; char vexsN; int arcsNN;graph;void funtion(int i,graph *g) int j; printf(node:%cn,g-vexsi); visitedi=TRUE; for(j=0;jvexnum;j+) if(g-arcsij=1)&(!visitedj) function(j,g);14、对于直接插入排序,希尔排序,冒泡排序,快速排序,直接选择排序,堆排序和归并排序等排序方法,分别写出:(1)平均时间复杂度低于O(n2)的排序方法;希尔、快速、堆、归并(2)所需辅助空间最多的排序方法;归并15、编写算法,将一个头指针为head不带头结点的单链表改造为一个单向循环链表,并分析算法的时间复杂度。答案:void linklist_c(Lnode *head) Lnode *p; p=head;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 分娩期营养与健康课件
- 中级育婴员试题及答案(附解析)
- 2024年10月矿山救护工高级试题含参考答案解析
- 《化学元素周期律》的探秘 课件
- 报纸新闻的政治新闻深度报道分析考核试卷
- 《平方根定理的逆定理》课件
- 货运枢纽站物流项目管理与风险管理考核试卷
- 环境英语课件
- 《二胃排空及其控制机制》课件
- 航空器飞行数据记录与分析考核试卷
- 边通车边施工路段安全专项方案
- 复合材料的成型工艺课件
- 初中八年级英语课件the Leaning Tower of Pisa
- 医院放射诊疗防护知识普及培训课件
- 小学科学教育中的创新课程教学模式研究
- 2024年江苏武进经济发展集团招聘笔试参考题库含答案解析
- 星巴克基本管理制度
- 胸腔穿刺术评分表
- 苏教版五年级下册数学 第4单元 第10招 分数单位的拆分 知识点梳理重点题型练习课件
- 开关设备检修工(技师)技能鉴定备考试题库及答案
- 川教版二年级《生命.生态.安全》下册第10课《面对学习困难》课件
评论
0/150
提交评论