知天易,逆天难 2019-07-17 14:42 采纳率: 0%
浏览 541

链表编程,考研真题,想不出答案

链表,一串数组序列,如4,5,1,3,2,7以递增或递减构成子序列,如(3,4,5),(5,1),(1,3),(3,2),(2,7),五个子序列,编写算法求链表有几个子序列(C语言描述)
编程小白考研真题没答案,请大佬赐教

  • 写回答

1条回答 默认 最新

  • D_DreKing 2019-07-17 15:13
    关注
    #include <stdio.h>
    #include <stdlib.h>
    
    struct ListNode{
        int value ;
        struct ListNode* next ;
    };
    
    typedef struct ListNode* pListNode ;
    typedef struct ListNode ListNode ;
    
    int main( void )
    {
        int value[] = {4, 5, 1, 3, 2, 7} ;
        int i = 0 ;
        int numOfValue = sizeof(value) / sizeof(int) ;
    
        pListNode head = NULL ;
        pListNode tmp = NULL ;
        pListNode plook = NULL ;
        pListNode pre = NULL ;
    
        if( numOfValue != 0 )
        {
            head = (pListNode)malloc( sizeof(ListNode) ) ;
            head->value = value[0] ;
            head->next = NULL ;
        }
    
        for( i = 1; i < numOfValue; i++ )
        {
            plook = head ;
            pre = NULL ;
            tmp = (pListNode)malloc( sizeof(ListNode) ) ;
            tmp->value = value[i] ;
            tmp->next = NULL ;
    
    
            while( plook != NULL ) 
            {
                if(value[i] > plook->value)
                {
                    pre = plook ;
                    plook = plook->next ;
    
                }
                else
                {
                    break ;
                }
    
            }
    
            if( pre == NULL )
            {
                tmp->next = head ;
                head = tmp ;
            }
            else
            {
                tmp->next = pre->next ;
                pre->next = tmp ;
            }
        }
    
        plook = head ;
        while(plook != NULL )
        {
            printf(" %d\t", plook->value) ;
            plook = plook->next ;
        }
    }
    

    没有注释也不知道你看不看的懂。。。不知道你这个题能不能使用头结点,要是能用一个头结点,插入的时候就不用了把代码写的这么麻烦了。

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!