广工anyview数据结构-01~02(部分乱码我就不贴出来了)

原创 2015年07月10日 10:53:37
/**********
【题目】试写一算法,如果三个整数a,b和c的值
不是依次非递增的,则通过交换,令其为非递增。
***********/
void Descend(int &a, int &b, int &c)
/* 通过交换,令 a >= b >= c */
{
 int t;
 if(a<=b){t=b;b=a;a=t;}
 if(b<=c){t=c;c=b;b=t;}
 if(a<=b){t=b;b=a;a=t;}

}


/**********
【题目】已知k阶裴波那契序列的定义为
    f(0)=0, f(1)=0, ..., f(k-2)=0, f(k-1)=1;
    f(n)=f(n-1)+f(n-2)+...+f(n-k), n=k,k+1,...
试编写求k阶裴波那契序列的第m项值的函数算法,
k和m均以值调用的形式在函数参数表中出现。
**********/
Status Fibonacci(int k, int m, int &f) 
/* 求k阶斐波那契序列的第m项的值f */
{
   int t[100],i,j,sum;
   if(k<2||m<0) return ERROR;
   if(m<k-1) f=0;  
   else if(m==k-1) f=1; 
   else
      {for(i=0;i<=k-2;i++) 
         t[i]=0; 
       t[k-1]=1;  
       for(i=k;i<=m;i++) 
         { sum=0; 
           for(j=i-k;j<=i;j++) 
              sum+=t[j]; 
           t[i]=sum; 
         } 
        f=t[m];  
       } 
   return OK;
}


/**********
【题目】试编写算法,计算i!×2^i的值并存入数组
a[0..n-1]的第i-1个分量中 (i=1,2,…,n)。假设计
算机中允许的整数最大值为MAXINT,则当对某个k
(1≤k≤n)使k!×2^k>MAXINT时,应按出错处理。注意
选择你认为较好的出错处理方法。
**********/
Status Series(int a[], int n) 
/* 求i!*2^i序列的值并依次存入长度为n的数组a;     */
/* 若所有值均不超过MAXINT,则返回OK,否则OVERFLOW */
{
   int i,s=1;
   if(n<0) return ERROR;
   for(i=1;i<=n;i++)
     {       
       a[i-1]=s*2*i;
       if(a[i-1]>MAXINT) return OVERFLOW;
       s=a[i-1];
     }
   return OK;     
}



/**********
【题目】试写一算法,对序列S的第i个元素赋以值e。
序列的类型定义为:
typedef struct {
  ElemType  *elem;
  int  length;
} Sequence;
***********/
Status Assign(Sequence &S, int i, ElemType e) 
/* 对序列S的第i个元素赋以值e,并返回OK。 */
/* 若S或i不合法,则赋值失败,返回ERROR   */
{
   int j;
   if(S.length<=i||S.length==0)return ERROR;
   for(j=0;j!=i;j++);
   S.elem[j]=e;
   return OK;
}





/**********
【题目】试写一算法,由长度为n的一维数组a构建一个序列S。
序列的类型定义为:
typedef struct {
  ElemType  *elem;
  int  length;
} Sequence;
***********/
Status CreateSequence(Sequence &S, int n, ElemType *a) 
/* 由长度为n的一维数组a构建一个序列S,并返回OK。 */
/* 若构建失败,则返回ERROR                       */
{
  int i;
  if(n<=0) return ERROR;
  S.elem=(ElemType*)malloc(sizeof(ElemType));
  S.length=n;
  for(i=0;i<n;i++)
   S.elem[i]=a[i];
  return OK; 
}



/**********
【题目】链表的结点和指针类型定义如下
    typedef struct LNode {
       ElemType  data;
       struct LNode *next;
    } LNode, *LinkList;
试写一函数,构建一个值为x的结点。
***********/
LinkList MakeNode(ElemType x)
/* 构建一个值为x的结点,并返回其指针。*/
/* 若构建失败,则返回NULL。           */
{
  LNode *p;
  p=(LNode *)malloc(sizeof(LNode));
  if(x=='\0')return NULL;
  (*p).data=x;
  (*p).next=NULL;
  return p;  
}





/**********
【题目】链表的结点和指针类型定义如下
    typedef struct LNode {
       ElemType  data;
       struct LNode *next;
    } LNode, *LinkList;
试写一函数,构建长度为2且两个结点的值依次为x和y的链表。
**********/
LinkList MakeNode(ElemType x)
{
    LinkList Node;
    Node = (LinkList)malloc(sizeof(LNode));
    if(Node == NULL)  return NULL;
    Node->data = x;
    Node->next = NULL;
    return Node;
}
LinkList CreateLinkList(ElemType x, ElemType y) 
/* 构建其两个结点的值依次为x和y的链表。*/
/* 若构建失败,则返回NULL。            */
{
     LinkList Node_x,Node_y;
     Node_x = MakeNode(x);
     Node_y = MakeNode(y);
     if(Node_x==NULL&&Node_y==NULL)   return NULL;
     Node_x->next = Node_y;
     return Node_x;
}



/**********
【题目】链表的结点和指针类型定义如下
    typedef struct LNode {
       ElemType  data;
       struct LNode *next;
    } LNode, *LinkList;
试写一函数,构建长度为2的升序链表,两个结点的值
分别为x和y,但应小的在前,大的在后。
**********/
LinkList MakeNode(ElemType x)
{
    LinkList Node;
    Node = (LinkList)malloc(sizeof(LNode));
    if(Node == NULL)  return NULL;
    Node->data = x;
    Node->next = NULL;
    return Node;
}
LinkList CreateOrdLList(ElemType x, ElemType y)
/* 构建长度为2的升序链表。  */
/* 若构建失败,则返回NULL。 */
{
    LinkList p,q;
    p=MakeNode(x);
    q=MakeNode(y);
    if((p->data)>(q->data)) {q->next=p;  return q;}
    else p->next=q;
    return p;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

2015广工数据结构anyview题库

/********** 【题目】试写一算法,如果三个整数a,b和c的值 不是依次非递增的,则通过交换,令其为非递增。 ***********/ void Descend(int &a, int &b,...
  • lzc394049722
  • lzc394049722
  • 2016年07月06日 10:21
  • 7565

广工AnyView数据结构-1

/**** 【题目】试写一算法,如果三个整数a,b和c的值 不是依次非递增的,则通过交换,令其为非递增。 */void Descend(int &a, int &b, int &c) /* 通过...
  • geek_jerome
  • geek_jerome
  • 2017年10月24日 23:13
  • 113

广工AnyView数据结构-3

/**** 【题目】试以顺序表L的L.rcd[L.length+1]作为监视哨, 改写教材3.2节中给出的升序直接插入排序算法。 顺序表的类型RcdSqList定义如下: typedef st...
  • geek_jerome
  • geek_jerome
  • 2017年10月27日 21:41
  • 97

广工AnyView数据结构-4

/**** 【题目】已知某哈希表的装载因子小于1,哈希函数H(key) 为关键字(标识符)的第一个字母在字母表中的序号,处理 冲突的方法为线性探测开放定址法。试编写一个按第一个 字母的顺序输出...
  • geek_jerome
  • geek_jerome
  • 2017年10月27日 21:58
  • 350

广工anyview数据结构-7

/**** 【题目】若两棵二叉树T1和T2皆为空,或者皆不空 且T1的左、右子树和T2的左、右子树分别相似,则 称二叉树T1和T2相似。试编写算法,判别给定两棵 二叉树是否相似。 二叉链表类...
  • geek_jerome
  • geek_jerome
  • 2018年01月18日 19:36
  • 10

广工AnyView数据结构-2

/**** 【题目】试写一算法,实现顺序栈的判空操作 StackEmpty_Sq(SqStack S)。 顺序栈的类型定义为: typedef struct { ElemType *el...
  • geek_jerome
  • geek_jerome
  • 2017年10月27日 12:57
  • 144

广工anyview数据结构-6

/**** 【题目】试按依次对每个元素递归分解的分析方法重写求广义表的深度的递归算法。 广义表类型GList的定义: typedef enum {ATOM,LIST} ElemTag; typ...
  • geek_jerome
  • geek_jerome
  • 2017年11月26日 15:46
  • 269

广工anyview数据结构-03(乱码不贴)

广工anyview数据结构
  • clr_lr
  • clr_lr
  • 2015年07月10日 11:02
  • 1067

数据结构课程设计:哈希表的设计

我负责小组里处理冲突。 用RN【30】做随即数列。在冲突的时候使用作为随即增量。为防止重复,在赋值时做适当处理。 这是处理前的代码:#include #include #inclu...
  • sterlingjone1
  • sterlingjone1
  • 2017年03月16日 13:42
  • 329

广工anyview数据结构-07~08(乱码不贴)

广工anyview数据结构
  • clr_lr
  • clr_lr
  • 2015年07月10日 11:52
  • 2087
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:广工anyview数据结构-01~02(部分乱码我就不贴出来了)
举报原因:
原因补充:

(最多只允许输入30个字)