sắp xếp danh sách liên kết đơn

Bài làm:


#include<iostream>
using namespace std;

struct Node{
 int data;
 Node *next;
};


Node * dau;
Node * cuoi;

void khoitao(){
 dau = cuoi = NULL;
}

void themcuoi(Node * node){
 if(dau == NULL){
  dau = cuoi = node;
 }
 else{
 cuoi -> next = node;
 cuoi = node;
}
}

Node *getNode(int x){
 Node *p = new Node();
 p -> data = x;
 p ->next = NULL;
 return p;
}

void input(){
 int n;
 cout << "nhap so node ";
 cin >> n;
 khoitao();
 for(int i = 1; i <= n; i++){
  int x;
  cout << "nhap vao data: ";
  cin >> x;
  Node *p = getNode(x);
  themcuoi(p);
 }
}

void in(){
 Node *p = dau;
 cout << endl;
 while( p != NULL){
  cout << p -> data << " ";
  p = p -> next;
 }
}

void hoanvi(int &a, int &b){
 int tmp = a;
  a = b;
  b = tmp;
}

void sapxep(){
 for( Node *p = dau ; p != cuoi; p = p -> next){
  for(Node *q = p ->next; q != NULL; q = q -> next){
   if(p -> data > q -> data){
    hoanvi(p -> data, q -> data);
   }
  }
 }
}


int main(){

 input();
 cout << "danh sach lien ket la: ";
 print();
 cout << endl << "danh sach sau sap xep la: ";
 sapxep();
 print();
 
}

Nhận xét

Bài đăng phổ biến từ blog này

Đổi chỗ chữ số đầu tiên và chữ số cuối cùng của một số

Đếm số thuần nguyên tố trong một khoảng

Tìm số đẹp (lộc phát)