?? stdafx.cpp
字號:
#include "stdafx.h"
#include <iostream>
using namespace std;
//創建單鏈表:
Lnode * creatList(int n){
Lnode *HL, *p, *s;
int i = 0;
HL = new Lnode;
if(!HL){
cout<<"Merory allocation failure !";
exit(1);
}
HL ->next = NULL;
p = HL;
cout<<"請您輸入你的數據:"<<endl;
for(; i < n; i ++) {
s = new Lnode;
cout<<"\t輸入您的第"<< i+1 <<"個元素 :";
cin>>s->data;
while(cin.fail()){
cout<<"error happen , try again:";
cin.clear();
cin.sync();
cin>>s->data;
};
s->next = NULL;
p->next = s;
p = s;
}
return HL;
}
//輸出指定的單鏈表并輸出其長度
void printList(Lnode *HL){
Lnode *p = HL->next;
int count = 0;
while(p){
cout<<p->data<<" ";
p = p ->next;
count ++;
}
cout<<" 鏈表長度為: "<<count<<endl;
}
//比較并得出A B兩鏈表中相同的元素,組成C表輸出
Lnode * judgeExist(Lnode *A,Lnode *B){
Lnode *p , *q;
p = A->next;
Lnode *C = new Lnode;
if(!C) exit(1);
Lnode *m = C;
C->next = NULL;
while(p){
q = B->next;
while(q){
if(p->data== q->data){
Lnode *s = new Lnode;
if(!s) exit(1);
s->data = p->data;
s->next = NULL;
m->next = s;
m = s;
}
q = q->next;
}
p = p->next;
}
return C;
}
//對指定鏈表排序
void ordered_L(Lnode *&HL){
Lnode *p = HL->next, *q, *pre;
HL->next = NULL;
while(p != NULL){
if(HL->next == NULL){
HL->next = p;
p = p->next;
HL->next->next = NULL;
}else{
pre = HL;
q = pre->next;
while(q!= NULL && p->data > q->data){
pre = q;
q = q->next;
}
q = p->next;
p->next = pre->next;
pre->next = p;
p = q;
}
}
}
//在A表中刪除E表的元素:
void DeleteTheSame(Lnode *&A,Lnode *E){
Lnode *p , *q, *s;
p = E->next;
while(p){
q = A->next;
s = A;
while(q){
if(p->data == q->data){
if(q->next == NULL){
s->next = NULL;
}else{
s->next = q->next;
q = q->next;
continue;
}
}
s = q;
q = q->next;
}
p = p->next;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -