知天易,逆天难 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 ;
        }
    }
    

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

    评论

报告相同问题?

悬赏问题

  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏