第一范文网 - 专业文章范例文档资料分享平台

数据结构总复习

来源:用户分享 时间:2025/5/22 5:56:53 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

10.实现在带头结点的单链表尾部插入新元素X的操作。

1 int instail(linklist*head,datatype x) 1分 {linklist *p,*s; p=head; 1分

s=(linklist*)malloc(sizeof(linklist)); 1分

if(s==NULL) {printf(“malloc failure!”); return NULL;} s->data=x; 1分 s->next=NULL; 1分 while(p->next!=NULL) 1分 p=p->next; 2分 p->next=s; 2分 return TRUE; }

11.以二叉链表为存储结构,试编写求二叉树高度的算法。

int depth(bitree* t) 1分 { int dep1,dep2;

if(t==NULL) return 0; 1分 else {

dep1=depth(t->lchild); 2分 dep2=depth(t->rchild); 2分

if(dep1>dep2) return(dep1+1) ; 2分 else return(dep2+1); 2分 } }

- 16 -

12设计一个求结点x在二叉树中的双亲结点算法。

13. 设计在链式存储结构上建立一棵二叉树的算法。

14. 设计判断一棵二叉树是否是二叉排序树的算法。

15.设有一组初始记录关键字序列(K1,K2,…,Kn),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于Ki,右半部分的每个关键字均大于等于Ki。

15. 设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链

式存储结构表示。

- 17 -

17设计在单链表中删除值相同的多余结点的算法。

18.下列算法实现在顺序散列表中查找值为x的关键字,请在下划线处填上正确的语句。

struct record{int key; int others;};

int hashsqsearch(struct record hashtable[ ],int k) {

int i,j; j=i=k % p;

while (hashtable[j].key!=k&&hashtable[j].flag!=0){j=(____) %m; if (i==j) return(-1);} if (_______________________ ) return(j); else return(-1); }

19.下列算法实现在二叉排序树上查找关键值k,请在下划线处填上正确的语句。

typedef struct node{int key; struct node *lchild; struct node *rchild;}bitree; bitree *bstsearch(bitree *t, int k) {

if (t==0 ) return(0);else while (t!=0)

if (t->key==k)_____________; else if (t->key>k) t=t->lchild; else_____________; }

20.设计在链式存储结构上交换二叉树中所有结点左右子树的算法。

- 18 -

搜索更多关于: 数据结构总复习 的文档
数据结构总复习.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c41jwr4mn7k6i8st1cmsk_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top