| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1170 人关注过本帖
标题:求这两道数据结构题目的算法代码
只看楼主 加入收藏
kehnoye
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-4-13
收藏
 问题点数:0 回复次数:7 
求这两道数据结构题目的算法代码
这两道题目 谁能帮我做一下 最好是完整点 能直接运行 最后能说一下怎么输入进行测试
1、实现判断一棵二叉树是否为完全二叉树的算法
2、实现将一个单链升序和一个单链降序合并为单链升序的算法

数据结构学的一点都不会 老师也很郁闷 就知道骂 不会指导我们的
刚开始学数据结构 就叫我们把书上的那个算法在计算机上实现 书上的还要添加很多东西才能调试的
最可恨的是 书上连个完整的能运行的例子的都没有

QQ77012938 gezaimin@163.com 救救我啊
搜索更多相关主题的帖子: 数据结构 算法 题目 代码 
2007-06-20 17:15
WOO1987
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-4-7
收藏
得分:0 
第一道:
Status CompleteBiTree(BiTree bt)
/* judge if the binary tree whose root is bt */
/* is a complete tree. */
{
Queue Q;
int flag=1;
BiTree p;
InitQueue(Q);
EnQueue(Q,bt);
while(!QueueEmpty(Q))
{
DeQueue(Q,p);
if(p->lchild)
{
if(flag==1) EnQueue(Q,p->lchild);
else return FALSE;
}
else flag=0;
if(p->rchild)
{
if(flag==1) EnQueue(Q,p->rchild);
else return FALSE;
}
else flag=0;
}
return TRUE;
}
关键是设置一个标志FLAG来记录检查了没有
其实都挺简单的
2007-06-23 01:30
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
#include <iostream>
using namespace std;

struct node{
int data;
node *next;
node(int i) : data(i),next(0){}
};

void insert(node *&head,int i){
if (!head)
head = new node(i);
else{
node *new_node = new node(i);
new_node->next = head;
head = new_node;
}
}

void reverse(node *&head){
node *new_head = 0;
while (head){
if (!new_head){
new_head = head;
head = head->next;
new_head->next = 0;
}
else{
node *old = head;
head = head->next;
old->next = new_head;
new_head = old;
}
}
head = new_head;
}

void merge(node *head1,node *head2,node *&head){
node *small = 0;
while (head1 && head2){
if (head1->data < head2->data){
small = head1;
head1 = head1->next;
}
else{
small = head2;
head2 = head2->next;
}
insert(head,small->data);
}
if (head1)
for (;head1;head1 = head1->next)
insert(head,head1->data);
else
for (;head2;head2 = head2->next)
insert(head,head2->data);
reverse(head);
}


int main(){
node *head1 = 0,*head2 = 0,*head = 0;
for (int i = 1;i < 10;++i)
insert(head1,i); //降序
for (int i = 11;i > 0;i -= 2)
insert(head2,i); //升序
reverse(head1); //置逆
merge(head1,head2,head); //合并
for (node *p = head;p;p = p->next) //输出
cout << p->data << " ";
cout << endl;
system("pause");

}

第2题,其中包括单链表置换。

[此贴子已经被作者于2007-6-23 11:25:11编辑过]


Fight  to win  or  die...
2007-06-23 11:24
kehnoye
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-4-13
收藏
得分:0 
能说一下怎么测试啊
第一题网上搜的 用什么队列啊 很烦的 能不能给出完整的啊 其他附加的我一点都不会
2007-06-25 15:47
kehnoye
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-4-13
收藏
得分:0 

有没有用C写的啊

2007-06-28 14:23
yushui
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:1355
专家分:22
注 册:2006-7-19
收藏
得分:0 
讨厌楼主这种   

fighting!from now on!
2007-06-30 08:27
燕南天
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-6-27
收藏
得分:0 
我也觉得数据结构很难,更郁闷的是,我们的还是英文教材呢,能把它看懂,估计可以过英语八级了。

2007-06-30 20:43
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
由于你学的是专业知识,所以英文教材并不是特别难。很多英文内容是经常出现的。

我能看懂一样过不到6级!

Fight  to win  or  die...
2007-06-30 22:48
快速回复:求这两道数据结构题目的算法代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025810 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved