鏈表實(shí)現(xiàn)兩個(gè)多項(xiàng)式的加法

最近遇到這樣一個(gè)題目,使用鏈表來實(shí)現(xiàn)兩個(gè)多項(xiàng)式的加法,剛開始覺得應(yīng)該比較簡(jiǎn)單房资,也可能是自己基礎(chǔ)不扎實(shí)吧蜕劝,這其中也是踩了很多的坑啊,最終還是成功了志膀,特此寫博客記錄一下熙宇。

一鳖擒、題目要求

使用鏈表來實(shí)現(xiàn)兩個(gè)多項(xiàng)式的加法溉浙,輸出最終相加后的多項(xiàng)式。多項(xiàng)式默認(rèn)是按指數(shù)(冪次)依次遞增的蒋荚,輸入時(shí)會(huì)依次輸入每一項(xiàng)的系數(shù)和指數(shù)戳稽,兩個(gè)多項(xiàng)式之間的數(shù)據(jù)以連續(xù)兩個(gè)0來結(jié)束一個(gè)多項(xiàng)式的輸入,最終輸出兩個(gè)多項(xiàng)式相加的多項(xiàng)式結(jié)果期升。例如:

多項(xiàng)式A: X^1 + 2 * X^2 + 3 * X^3
多項(xiàng)式B: X^1 + 2 * X^2 + 3 * X^3

輸入:

1 1
2 2
3 3
0 0
1 1
2 2
3 3
0 0

輸出:

2 * X^1 + 4 * X^2 + 6 * X^3

上面便是題目的要求,下面我們開始正式分析惊奇。

二、題目分析

我們先要解決的問題是多項(xiàng)式的存儲(chǔ)問題播赁,即它在計(jì)算機(jī)中的表現(xiàn)形式颂郎,很明顯我們只需要存儲(chǔ)了多項(xiàng)式的系數(shù)和指數(shù)即可以開始后面加法計(jì)算。這里我們又兩種存儲(chǔ)方式容为,一種是線性存儲(chǔ)乓序,另一種是鏈?zhǔn)酱鎯?chǔ)。

線性存儲(chǔ)坎背,比如我們采用數(shù)組來存儲(chǔ)這些數(shù)據(jù)替劈,理論來說是可以的,但是由于我們的多項(xiàng)式的項(xiàng)數(shù)是不確定的得滤,但數(shù)組必須在剛開始就必須
先給定一個(gè)初始的大小陨献,這個(gè)初始大小我們不好確定,分配少了懂更,沒法存儲(chǔ)全部多項(xiàng)式眨业,分配多了,會(huì)造成空間浪費(fèi)沮协,所以我們?cè)谶@里采用鏈表來存儲(chǔ)多項(xiàng)式秩霍,每次輸入一個(gè)多項(xiàng)式節(jié)點(diǎn)溯泣,我們就分配一個(gè)鏈表的節(jié)點(diǎn),這樣便可以合理的節(jié)約空間。

接著我們分析的是具體的實(shí)現(xiàn)步驟减拭,我在這里將其分為三步:

第一步:
接收用戶控制臺(tái)的輸入搭综,并且生成對(duì)應(yīng)的兩個(gè)多項(xiàng)式的鏈表表示。

我們的每個(gè)鏈表節(jié)點(diǎn)有三個(gè)域,前兩個(gè)域是數(shù)據(jù)域,依次表示多項(xiàng)式的系數(shù)和指數(shù),第三個(gè)域是指針域,指向下一個(gè)節(jié)點(diǎn)
這里我們?yōu)榱朔奖愫罄m(xù)處理,給每個(gè)連邊增加一個(gè)頭結(jié)點(diǎn),頭結(jié)點(diǎn)的數(shù)據(jù)域內(nèi)都放-1,沒有實(shí)際意義。如下圖所示:


頭結(jié)點(diǎn)

第二步:
依次對(duì)兩個(gè)鏈表中的數(shù)據(jù)進(jìn)行加法處理

這一步是我們的關(guān)鍵步驟悍募,下面將以圖文結(jié)合的方式來進(jìn)行解釋:

鏈表加法

如圖中所示,我們準(zhǔn)備了A洋机、B兩個(gè)鏈表

鏈表A表示的多項(xiàng)式: 7 * X^1 + 2 * X^2 + 8 * X^5
鏈表B表示的多項(xiàng)式: 2 * X^1 + (-2 * X^2) + 2 * X^3
鏈表C是我們最終的和鏈表

這里我們按照這樣的步驟進(jìn)行處理:

1 . 我們規(guī)定三個(gè)頭指針,分別指向三個(gè)鏈表的頭,然后再規(guī)定三個(gè)移動(dòng)指針,分別指向當(dāng)前三個(gè)鏈表中正在處理的那個(gè)節(jié)點(diǎn)

2 . 我們讓A坠宴、B、C的移動(dòng)指針剛開始也處于頭指針的位置,然后,我們拿A第一個(gè)節(jié)點(diǎn)中的指數(shù)和B第一個(gè)節(jié)點(diǎn)中的指數(shù)進(jìn)行比較,這個(gè)時(shí)候有三種情況:

a情況 . A中當(dāng)前的節(jié)點(diǎn)指數(shù) < B中當(dāng)前的節(jié)點(diǎn)指數(shù) ------ 我們將A中的當(dāng)前節(jié)點(diǎn)插入C中,然后向后移動(dòng)A和C的指針(因?yàn)锳中當(dāng)前節(jié)點(diǎn)已經(jīng)處理了)

b情況 . A中當(dāng)前的節(jié)點(diǎn)指數(shù) > B中當(dāng)前的節(jié)點(diǎn)指數(shù) ------ 我們將B中的當(dāng)前節(jié)點(diǎn)插入C中,然后向后移動(dòng)B和C的指針(因?yàn)锽中當(dāng)前節(jié)點(diǎn)已經(jīng)處理了) 即圖中⑧的情況绷旗。

c情況 . A中當(dāng)前的節(jié)點(diǎn)指數(shù) > B中當(dāng)前的節(jié)點(diǎn)指數(shù) ------ 此時(shí)A和B當(dāng)前節(jié)點(diǎn)指數(shù)相同,可以進(jìn)行系數(shù)相加,這時(shí)候也會(huì)出現(xiàn)兩種情況:

情況1 . 系數(shù)之和不為0 ------ 我們此時(shí)將系數(shù)之和放到A中的當(dāng)前節(jié)點(diǎn)的系數(shù)域,然后將A中的該節(jié)點(diǎn)插入C中,然后向后移動(dòng)C的指針(記住,我們這里不是產(chǎn)生一個(gè)新的節(jié)點(diǎn),而是直接更改A的系數(shù)域,然后將A的當(dāng)前節(jié)點(diǎn)插入C中),即圖中的①和②產(chǎn)生③的過程喜鼓。

情況2 . 系數(shù)之和為0 ------ 此時(shí)我們不能將系數(shù)和為0的項(xiàng)放入鏈表C中,理論來說我們什么都不用做,但是這里有一個(gè)小問題,因?yàn)榘凑涨闆r1來看,我們?cè)谙禂?shù)和不為0時(shí)是將A節(jié)點(diǎn)直接插到C中,我們假設(shè)我們?cè)谙禂?shù)和為0后什么都不做,繼續(xù)處理A中后續(xù)節(jié)點(diǎn),后面遇到一個(gè)系數(shù)和不為0的情況,我們將后面遇到的這個(gè)系數(shù)不為0的節(jié)點(diǎn)插入C中,那其實(shí)也將前面那個(gè)系數(shù)為0的項(xiàng)也一并插入C中了,以為前面那個(gè)系數(shù)為0的節(jié)點(diǎn)和其他后面的節(jié)點(diǎn)一直保持聯(lián)系。所以我們此時(shí)必須在系數(shù)和為0時(shí),將A中的當(dāng)前節(jié)點(diǎn)刪除了衔肢。即圖中的④和⑤產(chǎn)生⑥的過程庄岖。

無論上面是情況1還是情況2,總之我們都同時(shí)處理了節(jié)點(diǎn)A和節(jié)點(diǎn)B,所以,我們還需要同時(shí)將節(jié)點(diǎn)A和B的移動(dòng)指針向后移動(dòng)角骤。

這里還有一個(gè)情況,我們的A隅忿、B鏈表可能長(zhǎng)度不是一致的,那么就有可能其中一個(gè)鏈表的移動(dòng)指針已經(jīng)移動(dòng)到了末尾,那么此時(shí),我們就不需要繼續(xù)移動(dòng)了,我們只需要將另一個(gè)鏈表中未處理的數(shù)據(jù)直接接在當(dāng)前已經(jīng)生產(chǎn)的C鏈表的后面即可邦尊。

第三步:
打印輸出最終計(jì)算所得的和鏈表表達(dá)式

三背桐、代碼實(shí)現(xiàn)

經(jīng)過上面的分析,我們這里分別采用C語言和Java來實(shí)現(xiàn)上述思路,代碼中有詳細(xì)的注釋,下面只進(jìn)行簡(jiǎn)單解釋。

C語言實(shí)現(xiàn):

#include<stdio.h>
#include<malloc.h>
typedef struct node{
    float coef;
    int expn;
    node *next;
}Lnode, * Dxs;

Dxs create();
Dxs add_dxs(Dxs firsta, Dxs firstb);
void printDxs(Dxs h);
void deleteNode(Dxs h, Dxs p);


int main(){
    Dxs ha, hb, hc;
    printf("請(qǐng)依次輸入第一個(gè)多項(xiàng)式的系數(shù)和指數(shù)\n");
    ha = create();
    printf("請(qǐng)依次輸入第二個(gè)多項(xiàng)式的系數(shù)和指數(shù)\n");
    hb = create();
    printf("輸入的第一個(gè)多項(xiàng)式是: ");
    printDxs(ha->next);
    printf("輸入的第二個(gè)多項(xiàng)式是: ");
    printDxs(hb->next);
    hc = add_dxs(ha, hb);
    printf("兩個(gè)多項(xiàng)式的和為: ");
    printDxs(hc->next);
    return 0;
}

//創(chuàng)建鏈表(讀入數(shù)據(jù)以 0 0 結(jié)束)
Dxs create(){
    float coef;
    int expn;
    Dxs first, qa, s;
    first = (Dxs)malloc(sizeof(Lnode));
    first->coef = -1;
    first->expn = -1;
    first->next = NULL;
    qa = first;
    while(1){
        scanf("%f", &coef);
        scanf("%d", &expn);
        if(coef == 0 && expn == 0){
            break;
        }
        s = (Dxs)malloc(sizeof(Lnode));
        s->coef = coef;
        s->expn = expn;
        s->next = NULL;
        qa->next = s;
        qa = s;
    }
    return first;
}

//鏈表相加
Dxs add_dxs(Dxs firsta, Dxs firstb){
    Dxs firstc, ha, hb, pc, s;
    int a, b;
    float sum;
    firstc = (Dxs)malloc(sizeof(Lnode));
    firstc->coef = -1;
    firstc->expn = -1;
    firstc->next = NULL;
    pc = firstc;

    ha = firsta->next;
    hb = firstb->next;
    while(ha!= NULL && hb != NULL){
        a = ha->expn;
        b = hb->expn;
        if(a < b){
            //將a加入c中,移動(dòng)a和c的指針
            pc->next = ha;
            pc = pc->next;
            ha = ha->next;
        }else if(a > b){
            //將b加入c中,移動(dòng)b和c的指針
            pc->next = hb;
            pc = pc->next;
            hb = hb->next;
        }else{
            sum = ha->coef + hb->coef;
            if(sum != 0.0){
                //將和加入a中,再將a加入c中,移動(dòng)c的指針
                ha->coef = sum;
                pc->next = ha;
                pc = pc->next;
            }else{

                //查找刪除A中系數(shù)之和為0的那個(gè)節(jié)點(diǎn)
                s = firsta;
                while(s != ha){
                    s = s->next;
                }
                s->next = ha->next;
            }
            //ab已經(jīng)處理完成,同時(shí)后移一位
            ha = ha->next;
            hb = hb->next;
        }
    }

    //將剩余部分加入c后面
    if(ha != NULL){
        pc->next = ha;
    }

    if(hb != NULL){
        pc->next = hb;
    }
    return firstc;
}

//遍歷顯示鏈表
void printDxs(Dxs h){
    while(h != NULL){
        printf("%0.2f*X^%d + ", h->coef, h->expn);
        h=h->next;
    }
    printf("\n");
}

Java語言描述:

package cn.codekong;

import java.util.Scanner;

/**
 * 鏈表類
 * @author szh
 *
 */
public class MyLink {

    /**
     * 鏈表節(jié)點(diǎn)類
     * @author szh
     *
     */
    class Node{
        //多項(xiàng)式的系數(shù)
        private float coef;
        //多項(xiàng)式的指數(shù)
        private int expn;
        //指向下級(jí)節(jié)點(diǎn)
        public Node next = null;
        public Node(float coef, int expn){
            this.coef = coef;
            this.expn = expn;
        }
    }

    /**
     * 創(chuàng)建鏈表類
     * 從從控制臺(tái)不斷讀入數(shù)據(jù)蝉揍,以(0 0)結(jié)束
     * @return  創(chuàng)建好鏈表的第一個(gè)節(jié)點(diǎn)
     */
    public Node createLink(){
        //存取從控制臺(tái)讀到的系數(shù)和指數(shù)
        float coef = 0.0f;
        int expn = 0;
        //頭尾節(jié)點(diǎn)(尾節(jié)點(diǎn)方便插入)
        Node head, tail;
        head= new Node(-1, -1);
        head.next = null;
        tail = head;
        Scanner scanner = new Scanner(System.in);
        while(true){
            String res = scanner.nextLine();
            //以空格分割一行中的字符串
            String[] resArray = res.split("\\s+");
            coef = Float.parseFloat(resArray[0]);
            expn = Integer.parseInt(resArray[1]);
            if(coef == 0 && expn == 0.0f){
                break;
            }
            Node node = new Node(coef, expn);
            node.next = null;
            tail.next = node;
            tail = tail.next;
        }
        return head;
    }


    /**
     * 打印鏈表
     * @param head 鏈表首節(jié)點(diǎn)
     */
    public void printLink(Node head){
        while(head != null){
            System.out.format("%.2f*X^%d + ", head.coef, head.expn);
            head = head.next;
        }
        System.out.println();
    }

    /**
     * 計(jì)算兩個(gè)鏈表的和
     * @param nodeA
     * @param nodeB
     * @return  最終和的鏈表
     */
    public Node addLink(Node nodeA, Node nodeB){
        Node nodeC = new Node(-1, -1);
        nodeC.next = null;
        //始終指向鏈表的當(dāng)前需要處理的節(jié)點(diǎn)(剛開始要除去開頭的(-1,-1)節(jié)點(diǎn))
        Node pA = nodeA.next, pB = nodeB.next, pC = nodeC;
        //當(dāng)前指向的兩個(gè)鏈表的指數(shù)
        int valueAExpn = 0, valueBExpn = 0;
        while(pA != null && pB != null){
            valueAExpn = pA.expn;
            valueBExpn = pB.expn;
            if(valueAExpn < valueBExpn){
                //將A中的該節(jié)點(diǎn)加入C中, 同時(shí)移動(dòng)A和C的指針指向下個(gè)元素
                pC.next = pA;
                pC = pC.next;
                pA = pA.next;
            }else if(valueAExpn > valueBExpn){
                //將B中的該節(jié)點(diǎn)加入C中,同時(shí)移動(dòng)B和C的指針指向下個(gè)元素
                pC.next = pB;
                pC = pC.next;
                pB = pB.next;
            }else{
                //兩節(jié)點(diǎn)指數(shù)相同
                //現(xiàn)將系數(shù)相加放到A節(jié)點(diǎn)的系數(shù)中,然后將A節(jié)點(diǎn)加入C中
                float sum = pA.coef + pB.coef;
                if(sum != 0.0f){
                    //系數(shù)和不為0,將A節(jié)點(diǎn)的系數(shù)改變?yōu)閟um,然后將A節(jié)點(diǎn)加入C中
                    pA.coef = sum;
                    pC.next = pA;
                    pC = pC.next;
                }else{
                    //系數(shù)和為0,必須將A鏈表中的該節(jié)點(diǎn)從鏈表中刪除掉,如果只移動(dòng)指針,會(huì)在輸出時(shí)也輸出該項(xiàng)
                    //在整個(gè)A鏈表中依次查找,必須找到要?jiǎng)h除節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)才能將其刪除
                    Node s = nodeA;
                    while(s != pA){
                        s = s.next;
                    }
                    //刪除該節(jié)點(diǎn)
                    s.next = pA.next;
                }
                //對(duì)于系數(shù)相同的情況,A和B節(jié)點(diǎn)指針都往后移動(dòng)
                pA = pA.next;
                pB = pB.next;
            }
        }
        if(pA != null){
            pC.next = pA;
        }
        if(pB != null){
            pC.next = pB;
        }
        return nodeC;
    }
}
package cn.codekong;

import cn.codekong.MyLink.Node;

public class MyTest {
    public static void main(String[] args) {
        MyLink myLink = new MyLink();
        System.out.println("請(qǐng)依次輸入第一個(gè)多項(xiàng)式的系數(shù)和指數(shù)");
        Node nodea = myLink.createLink();
        System.out.println("請(qǐng)依次輸入第二個(gè)多項(xiàng)式的系數(shù)和指數(shù)");
        Node nodeb = myLink.createLink();
        System.out.println("輸入的第一個(gè)多項(xiàng)式是: ");
        myLink.printLink(nodea.next);
        System.out.println("輸入的第二個(gè)多項(xiàng)式是: ");
        myLink.printLink(nodeb.next);
        Node nodec = myLink.addLink(nodea, nodeb);
        System.out.println("兩個(gè)多項(xiàng)式的和為: ");
        myLink.printLink(nodec.next);
    }
}

其實(shí)Java的鏈表實(shí)現(xiàn)和C語言很類似,只是C語言中的節(jié)點(diǎn)是定義結(jié)構(gòu)體,而此處是使用一個(gè)內(nèi)部類來定義鏈表的每個(gè)節(jié)點(diǎn),C語言中的指針其實(shí)就是Java中的引用,我們生命的Java對(duì)象是存儲(chǔ)在堆中,而對(duì)象的引用則是存儲(chǔ)在堆棧中链峭。

上面為了保持Java和C在控制臺(tái)輸入的一致性,我通過使用Scanner讀入一行,然后通過正則表達(dá)式分割出系數(shù)和指數(shù)進(jìn)行后續(xù)處理。

四又沾、代碼運(yùn)行驗(yàn)證

C語言運(yùn)行結(jié)果:


C語言運(yùn)行結(jié)果

Java運(yùn)行結(jié)果:


Java運(yùn)行結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末弊仪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子捍掺,更是在濱河造成了極大的恐慌撼短,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挺勿,死亡現(xiàn)場(chǎng)離奇詭異曲横,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)不瓶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門禾嫉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蚊丐,你說我怎么就攤上這事熙参。” “怎么了麦备?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵孽椰,是天一觀的道長(zhǎng)昭娩。 經(jīng)常有香客問我,道長(zhǎng)黍匾,這世上最難降的妖魔是什么栏渺? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮锐涯,結(jié)果婚禮上磕诊,老公的妹妹穿的比我還像新娘。我一直安慰自己纹腌,他們只是感情好霎终,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著升薯,像睡著了一般莱褒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上覆劈,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天保礼,我揣著相機(jī)與錄音,去河邊找鬼责语。 笑死,一個(gè)胖子當(dāng)著我的面吹牛目派,可吹牛的內(nèi)容都是我干的坤候。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼企蹭,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼白筹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谅摄,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤徒河,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后送漠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體顽照,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年闽寡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了代兵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡爷狈,死狀恐怖植影,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涎永,我是刑警寧澤思币,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布鹿响,位于F島的核電站,受9級(jí)特大地震影響谷饿,放射性物質(zhì)發(fā)生泄漏抢野。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一各墨、第九天 我趴在偏房一處隱蔽的房頂上張望指孤。 院中可真熱鬧,春花似錦贬堵、人聲如沸恃轩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)叉跛。三九已至,卻和暖如春蒸殿,著一層夾襖步出監(jiān)牢的瞬間筷厘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工宏所, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酥艳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓爬骤,卻偏偏與公主長(zhǎng)得像充石,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子霞玄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1 序 2016年6月25日夜骤铃,帝都,天下著大雨坷剧,拖著行李箱和同學(xué)在校門口照了最后一張合照惰爬,搬離寢室打車去了提前租...
    RichardJieChen閱讀 5,076評(píng)論 0 12
  • 實(shí)驗(yàn)內(nèi)容 需要設(shè)計(jì)一個(gè)簡(jiǎn)單的一元稀疏多項(xiàng)式加減法計(jì)算器 實(shí)驗(yàn)要求 輸入并建立多項(xiàng)式 例如:![][1][1]: h...
    我叫卡卡算了閱讀 2,603評(píng)論 0 9
  • 如果要用語言來形容我此時(shí)此刻的心情,那大概就是哀莫大過于心死吧惫企。我想過一萬種我和他分開的原因撕瞧,但從未想過是他想去做...
    周東琪閱讀 476評(píng)論 0 0
  • 有一天风范,當(dāng)我急匆匆地走上深夜11點(diǎn)的天橋,地鐵從天橋前方的軌道上哐當(dāng)哐當(dāng)?shù)丶柴Y而去沪么,而我的目光瞥到燈火輝煌的街道硼婿,...
    晏耀飛閱讀 352評(píng)論 0 1
  • 幸福不在遠(yuǎn)方,幸福就在你的身邊禽车,在日日生活的地方寇漫,要有一顆懂得體驗(yàn)點(diǎn)滴美好的心刊殉,才會(huì)看到散落在日常當(dāng)中的幸福。幸福...
    蘭漫雪閱讀 623評(píng)論 0 0