| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1057 人关注过本帖
标题:求!哪个大哥帮我做下题目
只看楼主 加入收藏
daibenlong
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-5-15
收藏
 问题点数:0 回复次数:9 
求!哪个大哥帮我做下题目
1.排序算法比较
利用随机函数产生30000个随机整数,利用所学的排序方法进行排序,并统计每一种排序上机所花费的时间。

2.图的深度遍历
对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用堆栈的五种基本运算(清空堆栈、压栈、弹出、取栈顶元素、判栈空)实现图的深度优先搜索遍历。

3.图的广度遍历     对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用队列的五种基本运算(置空队列、进队、出队、取队头元素、判队空)实现图的广度优先搜索遍历。

4.二叉树的遍历
对任意给定的二叉树(顶点数自定)建立它的二叉链表存贮结构,并利用栈的五种基本运算(置空栈、进栈、出栈、取栈顶元素、判栈空)实现二叉树的先序、中序、后序三种遍历,输出三种遍历的结果。


随便选一题    我不会编程啊         要交课程设计     一个星期后就要交       93803021@   本人邮箱  每次发的贴没一个人帮我解决  希望这次有个好心的帮我下忙
搜索更多相关主题的帖子: 堆栈 遍历 深度 整数 
2008-06-05 13:13
Loli
Rank: 1
来 自:飞燕算法群46520219
等 级:新手上路
帖 子:348
专家分:0
注 册:2008-5-27
收藏
得分:0 
厉害厉害,哈哈



" border="0" />[color=white]
2008-06-05 13:22
killer_l
Rank: 2
等 级:新手上路
威 望:3
帖 子:1139
专家分:0
注 册:2007-5-25
收藏
得分:0 

2008-06-05 13:25
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
很想帮你,可惜我数据结构很烂.

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-06-05 14:51
wangyinshiwo
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2007-11-9
收藏
得分:0 
/* Note:Your choice is C IDE */
#include "stdio.h"
#include<stdlib.h>
typedef struct bitnode
{
    int data;
    struct bitnode *lchild,*rchild;
}bitnode,*bittree;
bittree cre_tree()
{
    int x;
    bittree root;
    scanf("%d",&x);
    if(x==-1)root=NULL;
    else
    {
        root=(bittree)malloc(sizeof(bitnode));
        root->data=x;
        root->lchild=cre_tree();
        root->rchild=cre_tree();
    }
    return root;
}
void preorder(bittree root)
{
    if(root)
    {
        printf("%d",root->data);
        preorder(root->lchild);
        preorder(root->rchild);
    }
}
void inorder(bittree root)
{
    if(root)
    {
        inorder(root->lchild);
        printf("%d",root->data);
        inorder(root->rchild);
    }
}
void postorder(bittree root)
{
    if(root)
    {
        postorder(root->lchild);
        postorder(root->rchild);
        printf("%d",root->data);
    }
}
bittree exchang(bittree root)
{
    bittree t;
    if(root)
    {
        if(root->lchild!=NULL&&root->rchild!=NULL)
        {
            t=root->lchild;
            root->lchild=root->rchild;
            root->rchild=t;
        }
        root->lchild=exchang(root->lchild);
        root->rchild=exchang(root->rchild);
    }
    return root;
}
int hightree(bittree root)
{
    int H,H1,H2;
    if(root==NULL)H=0;
    else
    {
        H1=hightree(root->lchild);
        H2=hightree(root->rchild);
        H=(H1>H2?H1:H2)+1;
    }
    return H;
}
int fine=0;
void searchtree(bittree root,int x,bittree *p)
{
    if(root&&!fine)
    if(root->data==x)
    { fine=1;*p=root; }     //若找到,则通过p带回该结点的指针
    else
    {
        *p=NULL;
        searchtree(root->lchild,x,p);
        searchtree(root->rchild,x,p);
    }
}
int n=0;
void leafcount(bittree root)
{
    if(root)
    {
        if(root->lchild==NULL&&root->rchild==NULL)
        n++;
        leafcount(root->lchild);
        leafcount(root->rchild);
    }
}
void main()
{
    int H,x;
    bittree root,p;
    root=cre_tree();
    preorder(root);printf("\n\n");
    inorder(root);printf("\n\n");
    postorder(root);printf("\n\n");
    root=exchang(root);preorder(root);printf("\n\n");
    H=hightree(root);
    printf("二叉树的深度为:");printf("%d\n",H);
    scanf("%d",&x);searchtree(root,x,&p);
    printf("要找的数据为:");
    printf("%d",p->data);printf("\n");
    leafcount(root);
    printf("叶子的结点个数为:");printf("%d",n);
}

抽刀断水水更流,举杯消愁愁更愁。
2008-06-05 14:58
wangyinshiwo
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2007-11-9
收藏
得分:0 
/* Note:Your choice is C IDE */
#include "stdio.h"
#include<stdlib.h>
typedef struct bitnode
{
    char ch;
    struct bitnode *lchild,*rchild;
}bitnode,*bittree;
typedef struct stacknode
{
    bitnode *data;
    struct stacknode *next;
}linkstack;
void initstack(linkstack *s)
{ s->next=NULL; }
void push(linkstack *s,bittree x)
{
    linkstack *p;
    p=(linkstack *)malloc(sizeof(linkstack));
    p->data=x;
    p->next=s->next;
    s->next=p;
}
bittree pop(linkstack *s)
{
    bittree x;
    linkstack *p;
    p=s->next;
    if(s->next==0)return 0;
    x=p->data;
    s->next=p->next;
    free(p);
    return x;
}
bittree cre_tree()
{
    bittree root;
    char ch;
    ch=getchar();
    if(ch=='#')root=NULL;
    else
    {
        root=(bittree)malloc(sizeof(bitnode));
        root->ch=ch;
        root->lchild=cre_tree();
        root->rchild=cre_tree();
    }
    return root;
}
void preorder(bittree root)
{
    linkstack s;
    bittree p;
    initstack(&s);
    push(&s,root);
    while(s.next)
    {
        p=pop(&s);
        while(p)
        {
            printf("%c",p->ch);
            if(p->rchild)push(&s,p->rchild);
            p=p->lchild;
        }
    }
}
void inorder(bittree root)
{
    bittree p;
    linkstack s;
    initstack(&s);
    p=root;
    while(p||s.next)   //注意还有右子树也要判断
    {
        while(p)
        {
            push(&s,p);
            p=p->lchild;
        }
        p=pop(&s);
        printf("%c",p->ch);
        p=p->rchild;
    }
}
void main()
{
    bittree root;
    root=cre_tree();
    preorder(root);printf("\n\n");
    inorder(root);printf("\n\n");
}

[[it] 本帖最后由 wangyinshiwo 于 2008-6-5 15:36 编辑 [/it]]

抽刀断水水更流,举杯消愁愁更愁。
2008-06-05 14:59
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
我估计你要第N次失望了

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-06-05 14:59
xu1dong
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-6-23
收藏
得分:0 
好程序
看到你们写的程序我不得不说一声“牛”
我不管怎么看都看不明白   可能是我的能力有限!!!
还请高手多点火请教!!!

没有做不到的只有想不到的
2008-06-23 10:07
ysyyn
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-6-23
收藏
得分:0 
2008-06-23 11:36
菜鸟选手
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2008-5-5
收藏
得分:0 
看我签名

算法学习群57909089
2008-06-23 12:25
快速回复:求!哪个大哥帮我做下题目
数据加载中...
 
   



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

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