回 帖 发 新 帖 刷新版面

主题:程序员笔试考前练习(39)[

http://www.educity.cn 作者:不详 来源:希赛教育
假设以带头结点的单循环链表作非递减有序线性表的存储结构。函数deleteklist(LinkList head)的功能是删除表中所有数值相同的多余元素,并释放结点空间。 


  例如:链表初始元素为:


  (7,10,10,21,30,42,42,42,51,70)


  经算法操作后变为:


  (7,10,21,30,42,51,70)


  【函数1】
  void deleteklist(LinkList head)
  {
  LinkNode*p,*q;
  p=head->next;
  while(p!=head)
  {
  q=p->next;
  while( (1) )
  {
  (2) ;
  free(q);
  q=p->next;
  }
  p=p->next;
  }
  } 

  【说明2】


  已知一棵完全二叉树存放于一个一维数组T[n]中,T[n]中存放的是各结点的值。下面的程序的功能是:从T[0]开始顺序读出各结点的值,建立该二叉树的二叉链表表示。

 【函数2】
  #include
  typedef struct node {
  int data;
  stuct node leftChild,rightchild;
  }BintreeNode;
  typedef BintreeNode*BinaryTree;
  void ConstrncTree(int T[],int n,int i,BintreeNode*&ptr)
  {
  if(i>=n) (3) ;∥置根指针为空
  else
  {
  ptr=-(BTNode*)malloc(sizeof(BTNode))
  ptr->data=T[i];
  ConstrucTree(T,n,2*i+1, (4) );
  ConstrucTree(T,n, (5) ,ptr->rightchild);
  }
  }
  main(void)
  {/*根据顺序存储结构建立二叉链表*/
  Binarytree bitree;int n;
  printf("please enter the number of node:\n%s";n);
  int*A=(int*)malloc(n*sizeof(int));
  for(int i=0;i<n;i++)scanf("%d,A+i);/*从键盘输入结点值*/
  for(int i=0;i<n;i++)printf("%d",A[i]);
  ConstructTree(A,n,0,bitree);
  }

  答案:
  (1)q!=head &&q->data==p->data
  (2)p->next=q->next
  (3)ptr=NULL
  (4)ptr->leftchild
  (5)2*i+2


回复列表 (共1个回复)

沙发

法蕾雅竹纤维竹元诚

寻找一直寻找机会的人!
一个趋势中的趋势的项目!
一个直销和传销终结者的项目!
一个帮助普通创业者成功的项目!
   我们在互联网上正在拓展一个生意项目,现在正在寻求合作伙伴。我们认为成功的关键是你是什么人?还有你和谁在一起。我们在乎的是--您是否是有激情、有梦想的人。有意者请跟我们联系,我们和您谈谈,给您讲解一些生意概念,或许我们可以合作。一个集即21世纪品质生活、健康生活,生态家纺,网络品牌代理商城,互联网平台项目招商进行中……详情QQ空间资料 http://294355161.qzone.qq.com
网商咨询 法蕾雅竹元诚QQ 294355161 
科技之光传访法蕾雅http://player.youku.com/player.php/sid/XMTc2MzY4MjQ0/v.swf
法蕾雅竹纤维的神奇六大功效新浪博客
http://blog.sina.com.cn/s/blog_6ca0216a0100n7hq.html 
 

我来回复

您尚未登录,请登录后再回复。点此登录或注册