2008年内蒙古大学考研计算机真题__算法设计


(1)用数组a[n]和b[n]表示两个n位正整数(也可以小于n位),设计一个算法,求他们的和,和放在数组c[n]中,最高位溢出是,舍去之,有溢出时,返回1,否则返回0。


#include <stdio.h>

int main()
{
 
	int a[n] //初始化略
	int b[n] //初始化略
	int c[n]//c[n]每一位初值都为0 
int tmp=0;
for(int i=n-1;i>=0;i--)
{
  tmp=a[i]+b[i]+c[i];
  c[i]=tmp%10 ;
  if(tmp>10 )
  {
   c[i-1]++; 
  }
   
}

if(tmp>10)
{
  return 1;

}

 return 0;
}


(2)一个带头结点的双向链表La,设计一个算法将链表逆转。例如



算法思想:将第二个结点插入在头结点和第一个结点之间,然后再将第三个结点插入在头结点和第一个结点之间。。。。

typedef struct Node
{
  int data ;
  struct Node * pre;
  Struct Node * next;
}Node,*pNode;

pNode reverse(pNode La)
{
  pNode p=La->next;
  pNode q=p->next;
  
  while(q->next!=NULL)
  {
    p->next=q->next;
    q->next->pre=p;
    
    
   /* 下面的四部是将q插入 La和p之间*/
      
    q->next=p;
    q->pre=La; 
    La->next=q; 
    p->pre=q ;   
  
 //q始终指向p的下一个
   
    q=p->next;
  }
    
  return La; 
}


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值