• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 89  文章 - 118  trackbacks - 0
            <2014年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            留言簿(16)

            隨筆分類(56)

            隨筆檔案(89)

            文章分類

            推薦博客

            搜索

            •  

            最新隨筆

            最新評論

            閱讀排行榜

            剛剛有人考了我一道題,逆序輸出單鏈表:
            我是這樣答的(下面的代碼為偽代碼,不能通過編譯):

            void printSList(slist *pList)
            {
                assert(pList);
                
            if (pList == NULL)
                    
            return;

                string str;
                
            while (pList)
                {
                    str 
            = string(*pList) + str;
                    pList 
            = pList->next;
                }

                printf(
            "%s", str.c_str());
            }

            后來他讓我想一想還有沒有更為簡單的方法了,當時允許我上網,我用了幾分鐘到網上找了一下,沒有找到更好的辦法,如果先把鏈表逆序,再順序輸出時間復雜度更高。

            我走出大樓以后,忽然想到,是遞歸呀,對是遞歸:

            void printSList(slist *pList)
            {
                assert(pList);
                
            if (pList == NULL)
                    
            return;
                
                
            if (pList->next == NULL)
                    printf(
            "%s"*pList);
                
            else
                {
                    printSList(pList
            ->next);
                    printf(
            "%s"*pList);
                }
            }

            哎,人生中機會就是一瞬之間,錯過不知道下一次又是什么時候。但只要做了就會收獲,會一次比一次做的好。吃飯去了...


            posted on 2008-02-29 11:43 胡滿超 閱讀(10364) 評論(19)  編輯 收藏 引用

            FeedBack:
            # re: 單鏈表逆序輸出 2008-02-29 12:47 raof01
            先逆序再輸出比遞歸高效。
            N個節點,遞歸就存在N次函數調用,而先逆序再輸出就2次調用(分兩個函數寫的話)——當然不包括調用其他函數。其他函數如print()調用次數是固定的。假設N巨大,還有可能出現棧問題,而先做逆序僅僅是指針的賦值循環。  回復  更多評論
              
            # re: 單鏈表逆序輸出 2008-02-29 13:00 胡滿超
            @raof01
            “先逆序再輸出”是最直觀的想法,我的第一段代碼是另外一種思路。“先逆序再輸出”的時間復雜度是O(N*2),但會破壞原鏈表本身的結構。三種解決辦法各有優缺點,讓我選,我會選擇我的第一段代碼,這種實現最為清晰易懂。  回復  更多評論
              
            # re: 單鏈表逆序輸出 2008-02-29 13:04 hyou
            lol那個鏈尾==null時不該打印呀 否則豈不末尾打印兩次?
            哈無論如何 都是慢慢進步咯 學習了  回復  更多評論
              
            # re: 單鏈表逆序輸出 2008-02-29 13:27 魔域私服
            學習了````  回復  更多評論
              
            # re: 單鏈表逆序輸出[未登錄] 2008-02-29 14:40 santa
            如果你是去面dev的話你這個回答人家會不滿意的,如果數據量大,遞歸絕對掛掉。遞歸的效率會很低,因為要設計到許多系統棧操作,比起逆序要低效許多許多。  回復  更多評論
              
            # re: 單鏈表逆序輸出 2008-02-29 17:08 浪跡天涯
            面試時 切記使用傻傻的方法
            我覺得遞歸 可能是最先想到的
            第一張方法也很巧妙 已經回答的很好了  回復  更多評論
              
            # re: 單鏈表逆序輸出 2008-02-29 18:01 humanchao
            @浪跡天涯
            謝謝您的鼓勵!  回復  更多評論
              
            # re: 單鏈表逆序輸出 2008-02-29 18:27 comiunknown
            先把這個單項鏈表按順序把每個節點的值壓到一個堆棧里面,讀完后,然后從堆棧中把值依次讀出來,算法復雜度只有O(n)。感覺這個題是考堆棧。  回復  更多評論
              
            # re: 單鏈表逆序輸出 2008-03-01 10:00 winsty
            遞歸的效率很低的...  回復  更多評論
              
            # re: 單鏈表逆序輸出[未登錄] 2008-04-18 23:43 christanxw
            遞歸絕對是失敗的做法。  回復  更多評論
              
            # re: 單鏈表逆序輸出 2008-09-26 17:50 oracle3
            分配一個數組,把指針放到數組中,然后for倒著打印,應該最簡單  回復  更多評論
              
            # re: 單鏈表逆序輸出 2010-10-16 17:14 QQ124045670
            遞歸那個方法我還沒學到,所以我使用了分配一個數組,把指針放到數組中,然后for倒著打印
            Status display(LinkList &L)
            {
            printf("\n---------------------------顯示單鏈線性表----------------------\n");
            LinkList p;
            int n[100];
            int j=100;
            p=L->next; //打印的時候應該從頭結點的下一個結點開始打印,否則會出現亂碼
            printf("\n單鏈表為:\t");
            if(p!=NULL)
            {
            for(;p!=NULL;--j)
            {
            n[j-1]=p->date; //j-1是因為100要存放頭結點的位置
            p=p->next;
            }
            for(;j<100;j++)
            {
            printf("%d",n[j]);
            }
            }
            free(p);
            return 1;
            }//display  回復  更多評論
              
            # re: 單鏈表逆序輸出 2011-09-18 21:47 wmj
            @comiunknown
            我也這么想的  回復  更多評論
              
            # re: 單鏈表逆序輸出 2012-07-02 09:33 
            業績依據絕對不是建立在一種想象當中,是必須從客觀數據當中體現業績的一種常態依據的,盡管這樣的依據多少反映了一些現實,但是其實更多的反映的是事實上面業績的依據。  回復  更多評論
              
            # re: 單鏈表逆序輸出 2012-07-02 09:34 
            業績依據證明有效的方式一定是取決于業績依據的新的概念,這個新的概念其實是對于產品的定義,或者說產品的定義領導了一種思維變化的過程,這個其實是存在的一種業績依據的表現  回復  更多評論
              
            # re: 單鏈表逆序輸出 2012-07-02 09:35 
            實際上業績依據的兩種表現在市場表現容量的方式在于對于人得市場反映程度的高低,而在產品概念上面是取決于經濟常識的需要  回復  更多評論
              
            # re: 單鏈表逆序輸出 2012-07-02 09:37 
            業績依據的兩個方面,就 市場方面具體體現其實就是實質的專柜,店面的位置面積,形象的一個代表,而業績依據的產品方面其實就是概念,定義,理論,原理上面的  回復  更多評論
              
            # re: 單鏈表逆序輸出 2012-07-02 09:39 
            作為對于業績依據的形成應該作為一種每年的規劃出來的事實來 看待,而這樣的規劃一定是建立在兩種要素上面,也就是市場要素與產品要素  回復  更多評論
              
            # re: 單鏈表逆序輸出 2012-07-02 09:40 
            規劃業績的效果是長期的事情,也是必須重視起來的事情,這個與業績數據沒有什么關系  回復  更多評論
              
            精品久久一区二区三区| 亚洲综合伊人久久综合| 国产成人精品久久亚洲| 久久久精品国产亚洲成人满18免费网站 | 国内精品久久久久久久97牛牛| 国产精品久久久久影视不卡| 久久精品国产亚洲7777| 久久棈精品久久久久久噜噜| 青青草原综合久久大伊人导航| 久久久久久无码Av成人影院| 久久婷婷五月综合97色直播| 久久精品99久久香蕉国产色戒 | 久久精品国产亚洲av影院| 99久久综合狠狠综合久久| 2021国产精品午夜久久| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 久久99久久99精品免视看动漫| 久久精品视频网| 中文无码久久精品| 性做久久久久久久久老女人| 国产精品久久久久久久久鸭| 亚洲精品乱码久久久久久中文字幕 | 国产精品久久久久久福利69堂| 久久婷婷色香五月综合激情| 国内精品久久久久影院网站| 亚洲AV乱码久久精品蜜桃| 亚洲精品无码久久毛片| 久久天天躁狠狠躁夜夜2020| 久久久久国产一级毛片高清版| 无码人妻久久一区二区三区免费丨| 久久久久综合国产欧美一区二区| 久久精品一区二区| 99久久精品国产一区二区三区| 国产精品久久久亚洲| 无码日韩人妻精品久久蜜桃| 久久久一本精品99久久精品88| 日韩人妻无码一区二区三区久久 | 久久久精品人妻一区二区三区蜜桃| 久久五月精品中文字幕| 午夜福利91久久福利| 日本久久中文字幕|