Professional Documents
Culture Documents
-(Tăng dần)
int min;
for(int i=0;i<n-1;i++){
min = i;
for(int j=i+1;j<n;j++)
if(a[j]<a[min])
min = j;
Bubble Sort
-(Tăng dần)
int i,j;
for(int i=0;i<n-1;i++)
for(int j=n-1;j>i;j--)
if(a[j]<a[j-1])
swap(a[i], a[j-1]);
Insertion Sort
-(Tăng dần)
for(int i=1;i<n;i++){
a[pos+1] = a[pos];
pos--;
a[pos+1] = x;
}
}
Quick Sort
-(Tăng dần)
int x = a[left];
if ( i < j ){
i--;
i++;
swap(a[left], a[j]);
if(left < j – 1)
QuickSort(a, j + 1, right);
HeapSort
-(Tăng dần)
int i, j, size=n-1, k;
while(size>0){
k = (int)(size-1)/2;
while(k>=0){
i=k;
while(i*2<size)
j=2*i+1;
if ((j+1<=size)&&(a[j]<a[j+1]))
j=j+1;
if(a[i]<a[j]{
swap(a[i],a[j]);
i=j;
else
break;
k--;
swap(a[0],a[size]);
size--;
Node *newNode ;
new_node = creatNode(x);
if (pHead == NULL)
addHead(x);
else{
Node *newNode ;
new_node = creatNode(x);
if (pHead == NULL)
addHead(pHead, x);
else{
Node *p;
p = pHead;
p = p -> next;
p->next = new_node;
if (pHead == NULL)
else{
Node* new_node;
new_node = creatNode(x);
new_node->next = p->next;
p->next = new_node;
if (pHead == NULL)
else{
Node *p;
P = pHead;
pHead = pHead->next;
delete p;
p = NULL;
if (Head == NULL)
Node *p = pHead;
p=p->next;
Node *q = pHead;
While (q->next != p)
q = q->next;
q->next=NULL;
delete p;
p = NULL;
if (pHead == NULL)
else{
q = q->next;
q->next = p->next;
delete p;
p = NULL;
Node* new_node;
new_node = creatNode(x);
if(pList == NULL)
addHead(pList,x);
else{
new_node->next = pList->next;
pList->next = new_node;
}
}
Node* new_node;
new_node = creatNode(x);
if(pList == NULL)
addHead(pList,x);
else{
new_node->next = pList->next;
pList->next = new_node;
pList = new_node;
if(pList == NULL)
else{
Node* new_node;
new_node = creatNode(x);
new_node->next = p->next;
p->next = new_node;
Node* new_node;
new_node = creatNode(x);
if(pList == NULL)
Node* q = pList->next;
while(q->next != p)
q = q->next;
new_node->next = p;
q->next = new_node;
if(pList == NULL)
delete pList;
pList = NULL;
else{
Node* p = pList->next;
pList->next = p->next;
delete p;
p = NULL;
if(pList == NULL)
delete pList;
pList = NULL;
}
else{
Node* p = pList;
while(pList->next != p)
pList = pList->next;
pList->next = p->next;
delete p;
p = NULL;
if(pList == NULL)
deleteFirst(pList);
return;
deleteLast(pList);
return;
else{
Node* q = pList->next;
while(q->next != p)
q = q->next;
q->next = p->next;
delete p;
p = NULL;
if(pList == NULL)
return;
else{
Node* q = p->next;
p->next = q->next;
delete q;
q = NULL;
Node* p;
while(pList->next != NULL){
p = pList->next;
pList->next = p->next;
delete p;
p = NULL;
if(pList == NULL)
return NULL;
Node* p = pList->next;
p = p->next;
return p;
if(pHead == NULL)
addHead(pHead,x);
else{
Node* new_node;
new_node = creatNode(x);
new_node->next = pHead;
pHead->prev = new_node;
new_node->prev = pTail;
pTail->next = new_node;
pHead = new_node;
if(pHead == NULL)
addHead(pHead,x);
else{
Node* new_node;
new_node = creatNode(x);
new_node->next = pHead;
pHead->prev = new_node;
new_node->prev = pTail;
pTail->next = new_node;
}
//insertAfter: chen node vao sau node p
if(pHead == NULL)
addHead(pHead,x);
insertLast(pHead,x);
else{
new_node = creatNode(x);
q = p->next;
new_node->prev = p;
new_node->next = q;
p->next = new_node;
q->prev = new_node;
if(pHead == NULL)
addHead(pHead,x);
insertFirst(pHead,x);
else{
new_node = creatNode(x);
q = p->prev;
new_node->prev = q;
new_node->next = p;
q->next = new_node;
p->prev = new_node;
}
}
int dem = 0;
Node* p = pHead;
do{
dem++;
p = p->next;
}while(p != pHead);
return dem;
int x;
cin >> x;
int vitri;
int n = countNode(pHead);
do{
if(pHead == NULL)
return;
delete pHead;
pHead = NULL;
}
else{
Node* p = pHead;
pHead = pHead->next;
pHead->prev = pTail;
pTail->next = pHead;
delete p;
p = NULL;
if(pHead == NULL)
return;
delete pHead;
pHead = NULL;
else{
Node* p = pHead->prev;
pHead->prev = pTail;
pTail->next = pHead;
delete p;
p = NULL;
if(pHead == NULL){
cout << "Danh sach trong!";
return;
deleteFirst(pHead);
return;
else{
left = p->prev;
right = p->next;
left->next = right;
right->prev = left;
delete p;
p = NULL;
if(pHead == NULL)
return NULL;
Node* p = pHead;
do{
if(p->data == x)
return p;
else
p = p->next;
}while(p != pHead);
return NULL;
pTail = pHead->prev;
swap(p->data, q->data);
if(pHead == NULL)
addHead(pHead,x);
else{
Node* new_node;
new_node = creatNode(x);
new_node->next = pHead;
pHead->prev = new_node;
pHead = new_node;
if(pHead == NULL)
addHead(pHead,x);
else{
Node* new_node;
new_node = creatNode(x);
Node* p = pHead;
while(p->next != NULL)
p = p->next;
new_node->prev = p;
p->next = new_node;
if(pHead == NULL)
addHead(pHead,x);
insertLast(pHead,x);
else{
new_node = creatNode(x);
q = p->next;
new_node->prev = p;
new_node->next = q;
p->next = new_node;
q->prev = new_node;
if(pHead == NULL)
addHead(pHead,x);
insertFirst(pHead,x);
else{
new_node = creatNode(x);
q = p->prev;
new_node->prev = q;
new_node->next = p;
q->next = new_node;
p->prev = new_node;
int dem = 0;
Node* p = pHead;
while(p != NULL){
dem++;
p = p->next;
return dem;
int x;
cin >> x;
int vitri;
int n = countNode(pHead);
do{
if(pHead == NULL)
return;
else if(pHead->prev = pHead->next){
delete pHead;
pHead = NULL;
else{
Node* p = pHead;
pHead = pHead->next;
pHead->prev = NULL;
delete p;
p = NULL;
if(pHead == NULL)
return;
delete pHead;
pHead = NULL;
else{
Node* p = pHead;
while(p->next != NULL)
p = p->next;
Node* q = p->prev;
q->next = NULL;
delete p;
p = NULL;
if(pHead == NULL){
return;
deleteFirst(pHead);
return;
deleteLast(pHead);
return;
else{
left = p->prev;
right = p->next;
left->next = right;
right->prev = left;
delete p;
p = NULL;
int vitri;
int n = countNode(pHead);
do{
if(vitri == 1)
deleteFirst(pHead);
else if(vitri == n)
deleteLast(pHead);
if(pHead == NULL)
return NULL;
Node* p = pHead;
p = p->next;
return p;
Node* p, *q;
swap(p->data, q->data);