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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构算法设计题及答案样本.docx

1、数据结构算法设计题及答案样本数据构造算法设计题及答案 1、对带表头结点有序单链表,编写算法向单链表中插入元素x,使其保持有序。答案:typedef datatype int;struct node /结点构造 datatype data; node * next;; /注:也可以用自然语言描述void insertOrder(node *head,datatype x) /记录 node *s;p=head;while (p-next -datanext;s=( node *)malloc(sizeof(node) ;s-data=x;s-next= p-next;p-next=s; 2、对带

2、表头结点单链表,编写算法求单链表长度。答案:typedef datatype int;struct node /结点构造 datatype data; node * next;; /注:也可以用自然语言描述int Length(node *head) / 求单链表长度 int num=0;node *p=head-next;while (p)num+ ;p=p-next;return num; 3、试写出单链表插入与删除算法,并用C编写相应程序。答案:typedef datatype int;struct node /结点构造 datatype data; node * next;; 单链表插

3、入参照算法: /在包括元素x结点前插入新元素bvoid ins_linked_LList(node * head ,datatype x,datatype b) node *p,*q;p=new node ;/申请一种新结点p-d=b;/置新结点数据域if (head=NULL)/原链表为空 head=p;p-next=NULL;return;if (head-d=x)/在第一种结点前插入 p-next=head;head=p;return;q=head;while (q-next!=NULL)&(q-next)-d)!=x)q=q-next;/寻找包括元素x前一种结点qp-next=q-ne

4、xt;q-next=p;/新结点p插入到结点q之后return;单链表删除参照算法: int del_linked_LList(node * head ,T x) /删除包括元素x结点元素 node *p,*q;if (head=NULL) return(0);/链表为空,无删除元素if (head-d)=x)/删除第一种结点 p=head-next;delete head;head=p;return(1);q=head;while (q-next!=NULL)&(q-next)-d)!=x)q=q-next;/寻找包括元素x前一种结点qif (q-next=NULL)return(0);/链

5、表中无删除元素p=q-next;q-next=p-next;/删除q下一种结点pdelete p;/释放结点p存储空间return(1);4、对带表头结点单链表,编写算法记录单链表中不不大于x元素个数。答案:typedef datatype int;struct node /结点构造 datatype data; node * next;; /注:也可以用自然语言描述int CountX(node *head,datatype x) /记录 int num=0;p=head-next;while (p)if(p-datax) num+ ;p=p-next;return num; 5、对带表头结

6、点单链表,编写算法将单链表就地逆置。答案:typedef datatype int;struct node /结点构造 datatype data; node * next;; /注:也可以用自然语言描述void ReverseList(node *head) / 将单链表就地逆置 node *q,*p=head-next;head-next=NULL;while (p)q=p;p=p-next;q-next= head-next;head-next=q ; 6、写出链队列入队、出队算法。 答案:typedef datatype int;struct node /结点构造 datatype d

7、ata; node * next;; /注:也可以用自然语言描述struct LinkQueue /结点构造 node * front; node * rear;; int EnterQueue(LinkQueue *q,datatype e) /带头结点链队列入队q-rear-next=( node *)malloc(sizeof(node);q-rear-data=e;q-rear= q-rear-next;return 1;int DeleteQueue(LinkQueue *q,datatype *e) /带头结点链队列出队if(q-rear= q-front) return 0;p=

8、 q-front-next;*e= p-data;q-front-next=p-next;free(p);if(q-front-next=NULL)q-rear= q-front;return 1;7、编写算法对二叉链表存储二叉树进行前序遍历,并记录二叉树中叶子结点数。答案:typedef datatype int;struct node /结点构造 datatype data; node * lchild,*rchild;; /注:也可以用自然语言描述void preOrder(node* root) /前序遍历 if(root=NULL) return ;/ 空树 printf(%5d,r

9、oot-data); preOrder (root-lchild );/ 前序遍历根左子树 preOrder (root-rchild );/ 前序遍历根右子树 int numOfLeaf (node* root) /记录二叉树中结点总数 if(root=NULL) return 0;/ 空树 if(root-lchild =NULL)& (root-rchild =NULL) ) return 1;/ 叶子 return numOfLeaf (root-lchild )+ numOfLeaf (root-rchild ); /阐明:算法表达形式及办法各种各样,不可拘泥于固法。8、对以二叉链表

10、存储二叉树,编写对二叉树进行中序遍历算法,以及求二叉树高度算法。答案:typedef datatype int;struct node /结点构造 datatype data; node * lchild,*rchild;; /注:也可以用自然语言描述void inOrder(node* root) /前序遍历 if(root=NULL) return ;/ 空树 inOrder (root-lchild );/ 中序遍历根左子树 printf(%5d,root-data); inOrder (root-rchild );/ 中序遍历根右子树 int height (node* root) /

11、求二叉树高度 int h1,h2 if(root=NULL) return 0;/ 空树 h1=height (root-lchild );h2= height (root-rchild );return 1+(h1=h2)?h1:h2; /阐明:算法表达形式及办法各种各样,不可拘泥于固法。9、编写对有序顺序表折半查找算法。 答案:#define MaxSize 100typedef struct KeyType key; OtherType otherData;datatype; struct SeqList /结点构造 datatype dataMaxSize; /0号单元不用 int l

12、en;; int BinSearch(SeqList SL,KeyType k) low=1,high=SL.len;while(low=high) mid=( low+high)/2; if(SL.datamid.key=k) return mid;/查找成功 if(SL.datamid.keyk)high= mid-1;elselow= mid+1;Return 0;/查找失败10、试写一种算法,鉴别一行字符中圆括号与否配对。 答案:int BracketMatch(char*str) /圆括号配对鉴别,配对返回1,否则返回0Stack s; InitStack(&s); for(i=0;stri;i+)switch( stri ) case (:Push(&s,stri);break; case ):if( IsEmpty(s) ) return 0;Pop(&s); if( IsEmpty(s) ) return 1; return 0;

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

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