| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 851 人关注过本帖
标题:基于线性表的动态顺序存储结构,
只看楼主 加入收藏
h2363752280
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-12-19
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:7 
基于线性表的动态顺序存储结构,
基于线性表的动态顺序存储结构,通过函数分别实现以下操作的算法。
实现要求:定义实现以下操作的函数
⑴ 顺序表的建立:通过键盘输入所建立的顺序表的元素个数n,通过随机生成的方式生成在[100,100000]之间的整数。
⑵ 输出顺序表的所有元素。
⑶ 求出顺序表中值最小和次小的元素值,要求该算法的时间复杂度为O(n),最小和次小的元素值通过指针变量带回,函数不需要返回值。
⑷ 删除顺序表中值在S与T之间(S和T的大小关系任意)的所有元素,要求该算法的时间复杂度为O(n),若S和T不合理或顺序表位空则显示错误信息。
⑸ 删除顺序表中所有值重复的所有元素,使得顺序表中的所有元素两两互不相同,要求该算法的时间复杂度为O(n2),然后调用函数输出处理之后的顺序表的所有元素。
⑹ 顺序表的排序,要求该算法的时间复杂度为O(n㏒2n),然后调用函数输出处理之后的顺序表.
⑺ 设计一个菜单,上述操作要求都作为菜单中的主要菜单项。
第1问做出来怪怪的,请高手指点
void creat1(int *p,int n)  //随机生成
{ int temp,i;   //定义两个整型变量
 
   for(i=0;i<n;i++)          //用随机函数生成一个顺序表
     {    temp=(int)rand()%MAX+100;  p[i]=temp;}
     
}
线性表的动态顺序存储结构是指动态数组吗,如果是的话我做错了,求指导
搜索更多相关主题的帖子: 线性表 动态 元素 
2012-12-19 16:26
crystall
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:184
专家分:809
注 册:2012-12-1
收藏
得分:0 
回复 楼主 h2363752280
⑴ 顺序表的建立:通过键盘输入所建立的顺序表的元素个数n,通过随机生成的方式生成在[100,100000]之间的整数。
这里的元素个数不确定,因此是动态的。

动态申请空间
c语言中: 用 malloc申请空间
           free释放空间
2012-12-19 18:24
h2363752280
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-12-19
收藏
得分:0 
应该怎样建立尼,求高手帮忙
2012-12-19 22:18
crystall
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:184
专家分:809
注 册:2012-12-1
收藏
得分:20 
程序代码:
#include <stdlib.h>
#include <time.h>


#define NUM_MAX     100000     //上限
#define NUM_MIM     100        //下限

int main(int argc, char* argv[])
{
    //保存元素的个数
    unsigned int nNum = 0;

    //循环变量
    unsigned int i = 0;

    printf("请输入一个数: ");
    scanf("%d", &nNum);

    //动态申请空间
    int *pNewSpace = (int*)malloc(sizeof(int)*nNum);
    if(pNewSpace == NULL)
    {
        printf("动态申请空间失败.\r\n");
    }
   
    //初始化随机种子
    srand((unsigned)time(NULL));

    //随机数
    for(i = 0; i < nNum; i++)
    {
        pNewSpace[i] = rand()%NUM_MAX + NUM_MIM;
        printf("pNewSpace[%d] = %d\r\n", i, pNewSpace[i]);
    }

    //释放空间
    if(pNewSpace != NULL)
    {
        free(pNewSpace);
    }

    return 0;
}
2012-12-20 09:58
h2363752280
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-12-19
收藏
得分:0 
int *pNewSpace = (int*)malloc(sizeof(int)*nNum);
这句有错误运行不了
前面少了一个定义int *pNewSpace ,不过还是非常感谢这位大哥
由于对指针不是很会用,把这7个问题用静态数组做了,老师说不行,让我从做,求高手帮忙做做,近来考试比较多看来没什么时间做了,求帮帮忙
2012-12-20 16:31
h2363752280
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-12-19
收藏
得分:0 
把int *pNewSpace = (int*)malloc(sizeof(int)*nNum);
if(pNewSpace == NULL)
    {
        printf("动态申请空间失败.\r\n");
    }这个放在 这个printf("请输入一个数: ");
    scanf("%d", &nNum);前面就可以了,但是运行的时候有一个不知道什么错误弹出来

2012-12-20 17:06
h2363752280
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-12-19
收藏
得分:0 
求帮忙啊,急急急
2012-12-21 14:02
crystall
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:184
专家分:809
注 册:2012-12-1
收藏
得分:0 
回复 6楼 h2363752280
你的应该C工程(源码文件的扩展名为.c) C工程必须将变量定义在前面的。
我的是c++工程,就没那问题
2012-12-22 11:57
快速回复:基于线性表的动态顺序存储结构,
数据加载中...
 
   



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

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