1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 鏈表題

        時間:2022-12-09 18:47:57 筆試題目 我要投稿
        • 相關推薦

        鏈表題

        鏈表題:一個鏈表的結點結構

        struct Node

        {

        int data ;

        Node *next ;

        };

        typedef struct Node Node ;

        (1)已知鏈表的頭結點head,寫一個函數把這個鏈表逆序 ( Intel)

        Node * ReverseList(Node *head) //鏈表逆序

        {

        if ( head == NULL || head->next == NULL )

        return head;

        Node *p1 = head ;

        Node *p2 = p1->next ;

        Node *p3 = p2->next ;

        p1->next = NULL ;

        while ( p3 != NULL )

        {

        p2->next = p1 ;

        p1 = p2 ;

        p2 = p3 ;

        p3 = p3->next ;

        }

        p2->next = p1 ;

        head = p2 ;

        return head ;

        }

        (2)已知兩個鏈表head1 和head2 各自有序,請把它們合并成一個鏈表依然有序。(保留所有結點,即便大小相同)

        Node * Merge(Node *head1 , Node *head2)

        {

        if ( head1 == NULL)

        return head2 ;

        if ( head2 == NULL)

        return head1 ;

        Node *head = NULL ;

        Node *p1 = NULL;

        Node *p2 = NULL;

        if ( head1->data < head2->data )

        {

        head = head1 ;

        p1 = head1->next;

        p2 = head2 ;

        }

        else

        {

        head = head2 ;

        p2 = head2->next ;

        p1 = head1 ;

        }

        Node *pcurrent = head ;

        while ( p1 != NULL && p2 != NULL)

        {

        if ( p1->data <= p2->data )

        {

        pcurrent->next = p1 ;

        pcurrent = p1 ;

        p1 = p1->next ;

        }

        else

        {

        pcurrent->next = p2 ;

        pcurrent = p2 ;

        p2 = p2->next ;

        }

        }

        if ( p1 != NULL )

        pcurrent->next = p1 ;

        if ( p2 != NULL )

        pcurrent->next = p2 ;

        return head ;

        }

        (3)已知兩個鏈表head1 和head2 各自有序,請把它們合并成一個鏈表依然有序,這次要求用遞歸方法進行。 (Autodesk)

        答案:

        Node * MergeRecursive(Node *head1 , Node *head2)

        {

        if ( head1 == NULL )

        return head2 ;

        if ( head2 == NULL)

        return head1 ;

        Node *head = NULL ;

        if ( head1->data < head2->data )

        {

        head = head1 ;

        head->next = MergeRecursive(head1->next,head2);

        }

        else

        {

        head = head2 ;

        head->next = MergeRecursive(head1,head2->next);

        }

        return head ;

        }

        【鏈表題】相關文章:

        筆試題(鏈表)09-20

        筆試題(單向鏈表)09-19

        筆試題(鏈表反向)09-19

        小學奧數應用題訓練題06-24

        新GRE閱讀題之邏輯單題精選06-20

        搜狐筆試真題編程筆試真題07-23

        系統設計題07-08

        精選小升初數學各校應用題真題參考08-10

        小升初數學應用題復習綜合訓練題08-18

        小學數學應用題綜合訓練18題06-25

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>