輸入字串,建立一個單鏈表,操作單鏈表使每相鄰的兩個字元交換位置
阿新 • • 發佈:2018-12-15
題目如上圖所示 ,程式碼如下:
#include <iostream> #include <string> using namespace std; struct linknode{ char data; linknode * next; }; int main() { linknode* head = NULL; linknode* tail = NULL; string chs; cin>>chs; for(int i=0;i<chs.size();i++){ linknode* newNode=(linknode*)malloc(sizeof(linknode)); newNode->data=chs[i]; newNode->next=NULL; if(tail==NULL) head=tail=newNode; else { tail->next=newNode; tail=newNode; } } if(head==NULL) return 0; linknode *q=head,*pre=NULL; while(q && q->next) { linknode *p1=q,*p2=q->next; q=p2->next; p1->next=p2->next; p2->next=p1; if (pre == NULL) head = p2; else pre->next = p2; pre = p1; } while(head!=NULL){ cout<<head->data; head=head->next; } cout << endl; return 0; }
積累積累。