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ố

Chuyển đơn vị đo nhiệt độ C và F

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