现在的位置: 首页 > 综合 > 正文

华科05-03年计算机考研复试机试

2014年01月07日 ⁄ 综合 ⁄ 共 1754字 ⁄ 字号 评论关闭

 

【1】输入一个数列以0为结束标志,建立链式线性表,查找其中最大的数并输出删除释放节点,然后对剩余的进行排序,并输出释放节点。

参考代码:

  1. #include<stdio.h>  
  2. #include<stdlib.h>  
  3. typedef struct LinkNode{//链表结点结构体定义;   
  4.         int data;  
  5.         struct LinkNode *next;    
  6. }LinkNode,*SqList;  
  7.   
  8. void createList(SqList &L){//创建单链表的函数;   
  9.      SqList p=L,q,s;  
  10.      int value;  
  11.      scanf("%d",&value);  
  12.      if(value==0)return;  
  13.      L->data=value;  
  14.      s=NULL;  
  15.      while(1){  
  16.          int v;  
  17.          scanf("%d",&v);  
  18.          if(v==0)  
  19.               return;     
  20.          q=(SqList)malloc(sizeof(LinkNode));  
  21.          q->data=v;  
  22.          q->next=s;  
  23.          p->next=q;  
  24.          p=q;  
  25.      }  
  26.      L=L->next;  
  27. }  
  28.   
  29. void display(SqList L){//输出单链表;  
  30.      SqList p=L;  
  31.      while(p->next!=NULL){  
  32.           printf("%d->",p->data);   
  33.           SqList q=p->next;  
  34.           free(p);//释放结点;   
  35.           p=q;           
  36.      }  
  37.      printf("%d",p->data);   
  38.      free(p);//释放结点;   
  39.      printf("/n");  
  40. }  
  41.   
  42. int getMax(SqList L){//获取最大结点值;   
  43.     int MaxNum=0;  
  44.     SqList p=L;  
  45.     while(p!=NULL){  
  46.         if(p->data>MaxNum)MaxNum=p->data;    
  47.         p=p->next;           
  48.     }  
  49.     return MaxNum;  
  50. }  
  51.   
  52. void freeMax(SqList &L){//释放此链表中值最大的结点;  
  53.        
  54.      if(L!=NULL){   
  55.          SqList p,q;  
  56.          p=L;  
  57.          q=L->next;  
  58.          if(p->data==getMax(L)){  
  59.               free(p);  
  60.               L=q;                    
  61.          }  
  62.          else{  
  63.               while(q!=NULL){  
  64.                    if(q->data==getMax(L)){  
  65.                          p->next=q->next;  
  66.                          free(q);     
  67.                          break;                
  68.                    }  
  69.                    p=q;  
  70.                    q=q->next;                 
  71.               }  
  72.          }  
  73.      }   
  74. }  
  75.   
  76. void sortList(SqList &L){

抱歉!评论已关闭.