| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 667 人关注过本帖
标题:谁会数据结构的帮忙下噢?
只看楼主 加入收藏
dragon080911
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2009-5-22
结帖率:50%
收藏
 问题点数:0 回复次数:3 
谁会数据结构的帮忙下噢?
1,假设顺序表L中的元素递增有序,设计算法在顺序表中插入元素x,要求插入后仍保持其递增有序特性。

2,设计算法将递增有序顺序表A、B中的元素值合并为一个递增有序顺序表C。

附顺序表类型声明:
#define  MAXLEN 100   
typedef  struct   
{ElemType  *elem ;  
 int  length;     
 int  listsize;
 }sqlist;

初始化:
void InitList_Sq(SqList &L)
       {
    L.elem=(ElemType *) malloc (MAXSIZE * sizeof (ElemType);
    if(!L.elem)  exit(-1);
    L.length=0;
    L.listsize=MAXSIZE;
       }

求表长:
int  Length_Sq(SqList L)
{
       return  L.length ;  
}

按序号取元素:
ElemType GetElem_Sq (SqList L,int i )
{
     if(i<1 || i>L.length)
    error(“超出范围”);
     else return L.elem[i-1];
}

按值求元素:
int  LocateElem_Sq(SqList L,ElemType x)
{  int i;
   for (i=0; i<L.length; i++)
     if (L.elem[i]==x)  return (i+1);
   return(0);
}

插入:
void  Insert_Sq(SqList &L,ElemType x,int i)
{ int j;
  if (L.length==MAXSIZE)  error(“overflow”);
  else if(i<1||i>L.length+1)            error(“position error”);
  else
  {    for(j=L.length-1;j>=i-1;j--)
            L.elem[j+1]=L.elem[j];
            L.elem[i-1]=x;
            L.length++;
  }
 }

删除:
void Delete_Sq(SqList &L,int i)
{ int j;
  if (L.length<=0)  error(“下溢出错”);
  if (i>L.length||i<=0)  error(“删除位置出错”);
  else
        for (j=i;j<=L.length-1;j++)
             L.elem[j-1]=L.elem[j];
        L.length--;
}
搜索更多相关主题的帖子: 数据结构 
2009-10-19 14:49
apwh7550
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:106
注 册:2009-10-17
收藏
得分:0 
写了一下,不知道对不对:

1、这里假定x为整形
void Insert_x(SqList &L,int x)
{
    //找到第一个大于i的元素L.elem[i]
   for (int i=0; i<L.length; i++)
     if (L.elem[i]>=x)
        break;
    //将x插入到此位置  
    Insert_Sq(L,x,i);//不太确定这里是不是i
}
2、
void merge(SqList &A,SqList &B,SqList &C)
{
    int curA=0,curB=0;
    int i=0;
    //顺序遍历A,B,并给C赋值
    while(curA<A.length()&&curB<B.length())
    {
        if(A.elem[curA]<B.elem[curB])
        {
            C.elem[i++]=A.elem[curA];
            curA++;
        }
        else
        {
            C.elem[i++]=B.elem[curB];
            curB++;
        }
    }

    //遍历剩余的元素
    while(curA<A.length())
        C.elem[i++]=A.elem[curA++];
    while(curB<B.length())
        C.elem[i++]=B.elem[curB++];

    //C中当前元素数目
    C.length=i;

}
2009-10-19 20:40
dragon080911
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2009-5-22
收藏
得分:0 
看不太懂耶,谁知道怎么在软件里运行啊?直接复制可以吗
2009-10-19 23:11
olivehave
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-10-20
收藏
得分:0 
什么
2009-10-20 11:07
快速回复:谁会数据结构的帮忙下噢?
数据加载中...
 
   



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

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