Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

full

Sắp xếp hòa nhập: 

void Merge(int a[], int d1, int c1, int c2, int b[]) 

int i,j,k; 

i=k=d1; 

j=c1+1; 

while ((i<=c1) && (j<=c2)) 

if (a[i]<a[j]) 

b[k++]=a[i++]; 

else 

b[k++]=a[j++]; 

while (i<=c1)  

b[k++]=a[i++]; 

while (j<=c2)  

b[k++]=a[j++]; 

}

void mpass(int a[], int b[], int n, int l) 

int i,j; 

i=-1; 

while (i+2*l<n) 

Merge(a,i+1,i+l,i+2*l,b); 

i+=2*l; 

if (i+l<n-1) 

Merge (a,i+1,i+l,n-1,b); 

else 

for (j=i+1;j<n;j++) 

b[j]=a[j]; 

}

void mergesort(int a[], int n) 

int l, b[100]; 

l=1; 

while (l<n) 

mpass(a,b,n,l); 

l=2*l; 

mpass(b,a,n,l); 

l=2*l; 

}

Sắp xếp lá»±a chá»n: 

void selectsort(int a[], int n) 

for (int i=1; i<=n-1; i++) 

int jmin=i+1; 

for (int j=i+2; j<=n;j++) 

if (a[jmin]<a[j]) 

jmin=j; 

doicho(a[min],a[i]); 

}

Quick Sort 

void quick(int l,int r, int a[]) 

if (l<r) 

int i,j,x,tg; 

x=a[(l+r)/2]; 

i=l; 

j=r; 

while (i<=j) 

while (a[i]<x)  

i++; 

while (a[j]>x) 

j--; 

if (i<=j) 

tg=a[i]; 

a[i]=a[j]; 

a[j]=tg; 

i++; 

j--; 

quick(l,j,a); 

quick(i,r,a); 

}

}

Sắp xếp vun Ä'á»'ng: 

void push(int i, int a[], int n) 

int j, tg; 

while (i<=n/2-1) 

j=2*i+1; 

if ((j<n-1) && (a[j]<a[j+1])) 

j++; 

if (a[j]>a[i]) 

tg=a[i]; 

a[i]=a[j]; 

a[j]=tg; 

i=j; 

else i=n; 

}

void push2(int i, int a[], int n) 

int j, tg=a[i]; 

while (i<=n/2-1) 

j=2*i+1; 

if ((j<n-1) && (a[j]<a[j+1])) 

j++; 

if (a[j]>a[i]) 

a[i]=a[j]; 

i=j; 

else n=i; 

a[i]=tg; 

}

void heap(int a[], int n) 

int i, tg; 

for (i=n/2-1;i>=0;i--) 

push(i,a,n); 

for (i=n-1;i>0;i--) 

tg=a[0]; 

a[0]=a[i]; 

a[i]=tg; 

push(0,a,i); 

}

void heap2(int a[], int n) 

int i, tg; 

for (i=n/2-1;i>=0;i--) 

push(i,a,n); 

for (i=n-1;i>0;i--) 

tg=a[0]; 

a[0]=a[i]; 

a[i]=tg; 

push(0,a,i); 

}

Tìm kiếm cây nhị phân:

int tkcnp(int x, node *t) 

while (t!=NULL) 

if (t->key==x) return 1; 

if (t->key>x) t=t->left; 

else t=t->right; 

return 0; 

}

Tìm kiếm nhị phân:

int tkcnp(int x, node *t) 

while (t!=NULL) 

if (t->key==x) return 1; 

if (t->key>x) t=t->left; 

else t=t->right; 

return 0; 

Tìm kiếm trên cây nhị phân Ä'ã sắp: 

int tktt4(int x, int a[], int n) 

int i=0; 

a[n]=x; 

while (a[i]<x) i++; 

if (i<n && a[i]==x) return 1; 

return 0; 

Tìm kiếm tuần tá»±: 

int tktt(int x, int a[], int n) 

int i=0; 

while (i<n && a[i]!=x) i++; 

if (i<n) return 1; 

return 0; 

}

int tktt2(int x, int a[], int n) 

int i=0;a[n]=x; 

while (a[i]!=x) i++; 

if (i<n) return 1; 

return 0; 

}

int tktt3(int x, int a[], int n) 

if (n==0) return 0; 

if (a[n-1]==x) return 1; 

return tktt3(x,a,n-1); 

}

Danh sách móc ná»'i Ä'Æ¡n: 

#include<conio.h> 

#include<string.h> 

#include<iostream.h> 

#include<stdio.h> 

#include<alloc.h> 

#include<iomanip.h>

struct sv 

char masv[10]; 

char hoten[20]; 

float dtb; 

};

struct dssv 

sv ptu; 

dssv*next; 

}*l;

void nhap (dssv*&l) 

dssv*q; 

char s[10]; 

l=new dssv; q=l; 

cout<<"nhap ma sv:"; 

gets(l->ptu.masv); 

cout<<"nhap ho ten:"; 

gets(l->ptu.hoten); 

cout<<"nhap dtb:"; 

cin>>l->ptu.dtb; 

cout<<"nhap ma sv:"; 

gets(s); 

while (strcmp (s,"")) 

q->next=new dssv; 

q=q->next; 

strcpy (q->ptu.masv,s); 

cout<<"nhap hoten:"; 

gets(q->ptu.hoten); 

cout<<"nhap dtb:"; 

cin>>q->ptu.dtb; 

cout<<"nhap masv:"; 

gets(s); 

q-> next = NULL; 

}

void hien(dssv*l) 

while (l!= NULL) 

cout<<l->ptu.masv<<setw(20)<<l->ptu.hoten; 

cout<<setw(10)<<l->ptu.dtb<<"

"; 

l=l->next; 

}

void sapxep(dssv*&l) 

dssv*p,*q;sv tg; 

if(l!=NULL) 

p=l; 

while(p->next!=NULL) 

q=p->next; 

while(q!=NULL) 

if(p->ptu.dtb>q->ptu.dtb) 

tg=q->ptu; 

q->ptu=p->ptu; 

p->ptu=tg; 

q=q->next; 

p=p->next; 

}

void chend(dssv*&l) 

dssv *q=new dssv; 

cout<<"nhap ma sv:"; 

gets(q->ptu.masv); 

cout<<"nhap ho ten:"; 

gets(q->ptu.hoten); 

cout<<"nhap dtb:"; 

cin>>q->ptu.dtb; 

q->next=l; 

l=q; 

}

void chenc(dssv*&l) 

dssv *p,*q=new dssv; 

cout<<"nhap ma sv:"; 

gets(q->ptu.masv); 

cout<<"nhap ho ten:"; 

gets(q->ptu.hoten); 

cout<<"nhap dtb:"; 

cin>>q->ptu.dtb; 

q->next=NULL; 

if (l==NULL) l=q; 

else 

p=l; 

while(p->next!=NULL) p=p->next; 

p->next=q; 

}

void chensap(dssv*&l) 

dssv *p,*q=new dssv; 

cout<<"nhap ma sv:"; 

gets(q->ptu.masv); 

cout<<"nhap ho ten:"; 

gets(q->ptu.hoten); 

cout<<"nhap dtb:"; 

cin>>q->ptu.dtb; 

if (l==NULL||q->ptu.dtb<l->ptu.dtb) 

q->next=l; 

l=q; 

else 

p=l; 

while(p->next!=NULL&&p->next->ptu.dtb<q->ptu.dtb) p=p->next; 

q->next=p->next; 

p->next=q; 

}

void delc(dssv*&l) 

if(l!=NULL) 

dssv*p=l,*q; 

if (l->next==NULL) 

{ delete l;l=NULL; } 

else 

while (p->next->next!=NULL) p=p->next; 

q=p->next; 

p->next=NULL; 

delete q; 

}

void deld(dssv*&l) 

if(l!=NULL) 

dssv*p=l; 

l=l->next; 

delete p; 

}

void del(dssv *&l) 

if(l!=NULL) 

dssv*p=l,*q; 

while (p->next!=NULL) 

if (p->next->ptu.dtb<5) 

q=p->next;p->next=q->next;delete q; 

else p=p->next; 

if(l->ptu.dtb<5) 

q=l;l=l->next;delete q; 

}

main() 

{

nhap(l); 

hien(l); 

l=NULL; 

cout<<"danh sach sau khi sap xep:

"; 

sapxep (l);hien(l); 

cout<<"danh sach sau khi chen dau:

"; 

chend(l);hien(l); 

cout<<"danh sach sau khi chen cuoi:

"; 

chenc(l);hien(l); 

cout<<"danh sach sau khi chen phan tu la:

"; 

chensap(l); 

cout<<"danh sach sau khi xoa la:

"; 

del(l); 

deld(l); 

delc(l); 

hien(l); 

getch(); 

}

Mảng 1 chiá»u 

#include "iostream.h" 

#include "conio.h" 

#include "stdio.h" 

#include "math.h" 

#include "iomanip.h"

//===================================== 

//Nhap mang: 

void nhap(int a[], int &n) 

cout<<"

Nhap n:"; 

cin>>n; 

for (int i=0; i<n; i++) 

cout<<"

a["<<i<<"]="; 

cin>>a[i]; 

}

//===================================== 

//Xuat mang ra man hinh: 

void hien(int a[], int n) 

for (int i=0; i<n; i++) 

cout<<setw(5)<<a[i]; 

}

//===================================== 

//Tim phan tu max va dem so phan tu max: 

void max(int a[], int n) 

int m=a[0], dem=1; 

for (int i=1; i<n; i++) 

if (m==a[i]) 

dem++; 

if (m<a[i]) 

m=a[i]; 

dem=1; 

}

cout<<"

Max="<<m; 

cout<<"

So phan tu max la:"<<dem;

}

//===================================== 

//Xoa cac phan tu bang x: 

void xoax(int a[], int &n) 

int x; 

cout<<"

Nhap x:"; 

cin>>x; 

int d=0; 

while (d<n && a[d]!=x) 

d++; 

for (int i=d+1; i<n; i++) 

if (a[i]!=x) 

a[d]=a[i]; 

d++; 

n=d; 

cout<<"

Sau khi xoa phan tu bang x:"<<endl; 

for (int i=0; i<n; i++) 

cout<<setw(5)<<a[i]; 

}

//===================================== 

//Sap xep tang dan: 

void saptang(int a[], int n) 

cout<<"

Sap xep tang dan:"<<endl; 

int tg; 

for (int i=0; i<n; i++) 

for (int j=i+1; j<n; j++) 

if (a[i]>a[j]) 

tg=a[i]; 

a[i]=a[j]; 

a[j]=tg; 

}

cout<<"

Sau khi sap xep tang dan:"<<endl; 

for (int i=0; i<n; i++) 

cout<<setw(5)<<a[i]; 

}

//===================================== 

//Chen x vao mang da sap, thoa man thu tu sap: 

void chenx(int a[], int &n) 

int d=0; 

int x; 

cout<<"

Nhap phan tu x:"; 

cin>>x; 

while (d<n && a[d]<x) 

d++; 

for (int i=n; i>d; i--) 

a[i]=a[i-1]; 

a[d]=x; 

n++; 

cout<<"

Sau khi chen phan tu x:"<<endl; 

for (int j=0; j<n; j++) 

cout<<setw(5)<<a[j]; 

}

//Main: 

main() 

int a[1000], n; 

nhap(a,n); 

hien(a,n); 

//max(a,n); 

//xoax(a,n); 

//saptang(a,n); 

//chenx(a,n); 

getch(); 

}

Danh sách liên kết Ä'Æ¡n: 

struct sv 

char masv[10]; 

char hoten[20]; 

float dtb; 

};

struct node 

sv ptu; 

node *next, *pre; 

};

struct dssv 

node *l, *r; 

}ds;

void nhap (dssv &ds) 

char s[10]; 

ds.l=new node; 

ds.r=ds.l; 

ds.l->pre=NULL;

cout<<"Nhap ma sv: "; 

fflush(stdin); 

gets(ds.l->ptu.masv); 

cout<<"Nhap ho ten: "; 

fflush(stdin); 

gets(ds.l->ptu.hoten); 

cout<<"Nhap diem TB: "; 

cin>>ds.l->ptu.dtb; 

cout<<"Nhap ma sv: "; 

fflush(stdin); 

gets(s); 

while (strcmp (s,"")) 

ds.r->next=new node; 

ds.r->next->pre=ds.r; 

ds.r=ds.r->next; 

strcpy (ds.r->ptu.masv,s); 

cout<<"Nhap ho ten: "; 

fflush(stdin); 

gets(ds.r->ptu.hoten); 

cout<<"Nhap diem TB: "; 

cin>>ds.r->ptu.dtb; 

cout<<"Nhap ma sv: "; 

fflush(stdin); 

gets(s); 

ds.r->next = NULL; 

}

void hiennguoc(dssv ds) 

while (ds.r!= NULL) 

cout<<ds.r->ptu.masv<<setw(20)<<ds.r->ptu.hoten; 

cout<<setw(10)<<ds.r->ptu.dtb<<"

"; 

ds.r=ds.r->pre; 

}

void hienxuoi(dssv ds) 

while (ds.r!= NULL) 

cout<<ds.l->ptu.masv<<setw(20)<<ds.l->ptu.hoten; 

cout<<setw(10)<<ds.l->ptu.dtb<<"

"; 

ds.l=ds.l->pre; 

/* 

void sapxep(dssv*&l) 

node *p,*q; 

sv tg; 

if (ds.l!=NULL) 

p=ds.l; 

while(p->next!=NULL) 

q=p->next; 

while(q!=NULL) 

if(p->ptu.dtb>q->ptu.dtb) 

tg=q->ptu; 

q->ptu=p->ptu; 

p->ptu=tg; 

q=q->next; 

p=p->next; 

}

void chend(dssv*&l) 

dssv *q=new dssv; 

cout<<"Nhap ma sv: "; 

fflush(stdin); 

gets(q->ptu.masv); 

cout<<"Nhap ho ten: "; 

fflush(stdin); 

gets(q->ptu.hoten); 

cout<<"Nhap diem TB: "; 

cin>>q->ptu.dtb; 

q->next=l; 

l=q; 

}

void chenc(dssv*&l) 

dssv *p,*q=new dssv; 

cout<<"Nhap ma sv: "; 

fflush(stdin); 

gets(q->ptu.masv); 

cout<<"Nhap ho ten: "; 

fflush(stdin); 

gets(q->ptu.hoten); 

cout<<"Nhap diem TB: "; 

cin>>q->ptu.dtb; 

q->next=NULL; 

if (l==NULL) l=q; 

else 

p=l; 

while(p->next!=NULL) p=p->next; 

p->next=q; 

}

void chensap(dssv*&l) 

dssv *p,*q=new dssv; 

cout<<"Nhap ma sv: "; 

fflush(stdin); 

gets(q->ptu.masv); 

cout<<"Nhap ho ten: "; 

fflush(stdin); 

gets(q->ptu.hoten); 

cout<<"Nhap diem TB: "; 

cin>>q->ptu.dtb; 

if (l==NULL||q->ptu.dtb<l->ptu.dtb) 

q->next=l; 

l=q; 

else 

p=l; 

while(p->next!=NULL&&p->next->ptu.dtb<q->ptu.dtb) p=p->next; 

q->next=p->next; 

p->next=q; 

}

void delc(dssv*&l) 

if(l!=NULL) 

dssv*p=l,*q; 

if (l->next==NULL) 

delete l; 

l=NULL;  

else 

while (p->next->next!=NULL) p=p->next; 

q=p->next; 

p->next=NULL; 

delete q; 

}

void deld(dssv*&l) 

if(l!=NULL) 

dssv*p=l; 

l=l->next; 

delete p; 

}

void del(dssv *&l) 

if(l!=NULL) 

dssv*p=l,*q; 

while (p->next!=NULL) 

if (p->next->ptu.dtb<5) 

q=p->next;p->next=q->next;delete q; 

else p=p->next; 

if(l->ptu.dtb<5) 

q=l;l=l->next;delete q; 

}

Key: 

#include <cstring> 

#include <cmath> 

#include <conio.h> 

#include <iostream> 

#include <cstdio> 

using namespace std;

struct node 

int key; 

node *left, *right; 

}*t;

void insert(int x, node *&t) 

if (t==NULL) 

t= new node; 

t->key=x; 

t->left=NULL; 

t->right=NULL; 

else if (x<t->key) 

insert(x,t->left); 

else 

insert(x,t->right); 

}

void nhap(node *&t) 

int n,x; 

t=NULL; 

cout<<"

Nhap so nut:"; 

cin>>n; 

for (int i=1;i<=n;i++) 

cout<<"

Nhap nut thu "<<i<<" : "; 

cin>>x; 

insert(x,t); 

}

void hienpre(node *t) 

{

if (t!=NULL) 

{

cout<<t->key<<" "; 

hienpre(t->left); 

hienpre(t->right); 

}

void hienin(node *t) 

{

if (t!=NULL) 

hienin(t->left); 

cout<<t->key<<" "; 

hienin(t->right); 

}

void hienpost(node *t) 

{

if (t!=NULL) 

hienpost(t->left); 

hienpost(t->right); 

cout<<t->key<<" ";

}

void del(int x,node *&t) 

node *p,*q; 

if (t!=NULL) 

if (t->key==x) 

if (t->left==NULL) 

p=t; 

t=t->right; 

delete p; 

else if (t->right==NULL) 

p=t; 

t=t->right; 

delete p; 

else 

p=t->left; 

if (p->right==NULL) 

p->right=t->right; 

q=t; 

t=p; 

delete q; 

else 

while (p->right->right!=NULL) 

p=p->right; 

q=p->right; 

t->key=q->key; 

p->right=q->left; 

delete q; 

}

else if(t->key>x) 

del(x,t->left); 

else 

del(x,t->right);

int main() 

freopen("input.in","r",stdin); 

nhap(t); 

//freopen("output.txt","w",stdout); 

cout<<"

Hien dau:

"; 

hienpre(t); 

cout<<"

Hien giua:

"; 

hienin(t); 

cout<<"

Hien sau:

"; 

hienpost(t); 

int x; 

cout<<"

Nhap x:

"; 

cin>>x; 

del(x,t); 

cout<<"

Hien dau:

"; 

hienpre(t); 

cout<<"

Hien giua:

"; 

hienin(t); 

cout<<"

Hien sau:

"; 

hienpost(t); 

getch(); 

return 0; 

}

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: