| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
#include<stdio.h> 
#include<stdlib.h> 
typedef  struct LNode{ 
    int data;  
        struct LNode *next; 
}LNode,*LinkList; 
 
LinkList creat_head() 
{  
     LinkList p; 
     p=(LinkList)malloc(sizeof(LNode)); 
 
     p->next=NULL;//(1) 
 
     return(p); 
 
} 
 
void print_list(LinkList &L) 
{ 
       LinkList p; 
       for(p=L->next;p!=NULL;) 
       {  
 
          printf("%d",p->data); //(2) 
          p=p->next;  //(3) 
       } 
} 
 
void creat_list(LinkList &L,int n) 
{  
    LinkList p,q;  
    int i;  
    p=L;  
    for(i=1;i<=n;i++) 
        {  
    q=(LinkList)malloc(sizeof(LNode));  
    printf("data:");  
    scanf("%d",&q->data); 
    q->next=NULL; 
        p->next=q; 
    p=q;   //(4) 
    }    
print_list(L);     
} 
 
int count(LinkList L,int x) 
{ 
        int num=0; 
        LNode *p; 
        p=L->next; 
        while(p&&p->data<=x) 
      p=p->next;//(5) 
    while(p) 
        {         
                if(p->data >x)  //(6) 
                {  
         num++; 
                 p=p->next;                ;//(7) 
                } 
                else 
                { 
                     p=p->next; 
                } 
} 
return num; 
} 
main() 
{ 
    int i,num,n; 
    LinkList L;    
    LinkList creat_head();   //创建链表头结点 8 
   printf("结点个数 n="); 
    scanf("%d",&n);    
    creat_list(L,n);   //创建n个结点的单链表  9 
     printf("输入一个数:"); 
     scanf("%d",&i); 
     printf("%d",count(L,i));//10 
} 
这原本是个填空题,“有一个正整数序列组成的有序单链表,试编写能实现下列功能的算法:确定在序列中比正整数x大的数有几个。”可我写完调了一上午还是没过。。。。。
- int count(LinkList L, int x)
 
 - {
 
 -     int num = 0;
 
 -     LinkList p = L;
 
  
-     while (p)
 
 -     {
 
 -         if (x > p->data)
 
 -             num++;
 
  
-         p = p->next;
 
 -     }
 
  
-     return num;
 
 - }
 
  复制代码 
 
 
 |   
 
 
 
 |