Double Linklist 問題 |
答題得分者是:taishyang
|
akok0111
一般會員 發表:6 回覆:3 積分:1 註冊:2003-12-17 發送簡訊給我 |
我讀了一個文字檔,並將裡面的文字差解成一個字一個字,然後比對每個英文字第一個字母,排序後輸出,我用double link list去處理,但是出現了Access violation at address 00402f47 in mpdule. 請各位高手指教一下是哪邊出錯了好嗎~~程式碼如下:
[code cpp] TForm1 *Form1; struct Node { String data; Node *prev; Node *next; }; Node *head =new Node; Node *tail=new Node; Node *ptr = new Node; //--------------------------------------------------------------------------- _fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { TStringList *strList = new TStringList(); strList->LoadFromFile("ReadMe.txt"); strList->Text=StringReplace(strList->Text, " ", " ", TReplaceFlags()) ; strList->CommaText = strList->Text; Node *newptr=new Node; int count1=0; int count2=0; //char *getdata tail=head; for(int i=0;i { Memo1->Lines->Add(strList->Strings[i]); if(count1==0) { head->data=strList->Strings[i]; count1=1; if(head==tail) { tail=head; head->next=NULL; } } else if(count1==1) { ptr=tail; Node *newptr=new Node; newptr->data=strList->Strings[i]; while(1) { String c1=ptr->data.SubString(1,1); String c2=newptr->data.SubString(1,1); if(c1>c2) { ptr->next=newptr; newptr->next=NULL; newptr->prev=ptr; tail=newptr; ptr=tail; break; } else { ptr=ptr->prev; c1=ptr->data; if(ptr->prev==NULL && c2 head=newptr; head->next=ptr; head->prev=NULL; break; } else if(c2>c1) { ptr->next->prev=newptr; newptr->next=ptr->next; ptr->next=newptr; newptr->prev=ptr; break; } } } } } } //--------------------------------------------------------------------------- [/code] |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
akok0111
一般會員 發表:6 回覆:3 積分:1 註冊:2003-12-17 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |