• <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 
            規劃業績的效果是長期的事情,也是必須重視起來的事情,這個與業績數據沒有什么關系  回復  更多評論
              
            久久久久久亚洲精品无码| 久久夜色精品国产亚洲| 色欲综合久久躁天天躁| 国产精品激情综合久久| 色综合合久久天天给综看| 久久久久久曰本AV免费免费| 亚洲国产精品一区二区久久hs| 久久国产免费观看精品3| 国内精品久久久久久久影视麻豆| 久久夜色精品国产| 久久综合给合久久狠狠狠97色| 2020最新久久久视精品爱| 久久国内免费视频| 免费观看成人久久网免费观看| 久久精品视屏| 久久精品国产精品青草app| 久久午夜无码鲁丝片秋霞| 26uuu久久五月天| 东京热TOKYO综合久久精品| 精品人妻伦一二三区久久 | 久久免费线看线看| 久久精品人妻一区二区三区| 久久免费的精品国产V∧| 尹人香蕉久久99天天拍| 韩国三级中文字幕hd久久精品| 999久久久免费精品国产| 伊人久久成人成综合网222| 狠狠色综合久久久久尤物| 99久久久精品| 国产精品99久久久久久人| 一本色综合网久久| 伊人久久大香线蕉亚洲| 婷婷久久综合九色综合九七| 88久久精品无码一区二区毛片 | 无码人妻久久一区二区三区蜜桃| 亚洲国产精品久久66| 国产精品久久久久久久| 日韩精品久久久久久久电影蜜臀| 国产精品久久久久免费a∨| 久久久亚洲裙底偷窥综合| 中文字幕乱码人妻无码久久|