*kiểu dữ liệu: 1 chiều, nhiều chiều*cấu trúc lưu trữ mảng: hình thức lưu trữ kế tiêp -địa chỉ các phần tử nối tiếp nhau -các phần tử sắp xếp theo hang -bộ nhớ cố định *đặc điểm -cấu trúc
Trang 1*kiểu dữ liệu: 1 chiều, nhiều chiều
*cấu trúc lưu trữ mảng: hình thức lưu trữ kế tiêp
-địa chỉ các phần tử nối tiếp nhau
-các phần tử sắp xếp theo hang
-bộ nhớ cố định
*đặc điểm
-cấu trúc đơn giản , truy cập nhanh
-thiếu mềm dẻo trong phép xóa, chèn
DANH SÁCH:
*khái niệm: danh sách là 1 tập có thứ tự gồm các phần tử cùng kiêu:
- các phần tử biến động
-các phần tử sắp xếp theo thứ tự trước- sau
*Danh sách tuyến tinh: là quan hệ lân cận giữa các phần tử
-hoặc là danh sách rỗng hoặc có dạng( a1,a2, an)
-n là độ dài /kích thước của danh sách
-mỗi phần tử thường là 1 bản ghi bao gồm 1 hoặc nhiều trường (field)
* danh sách con: gồm các phần tử liên tiếp từ a1 đến aj của danh sách
-nếu i =1 gọi là phần tử đầu (prefix)
-nếu j=n gọi là phần tử cuối (postfix)
Trang 2*dãy con: là 1 danh sách được tạo thành bằng cách loại 1 số phần tử từ danh sách
HÀNG ĐỢI
*khái niệm: hang đợi là kiểu danh sách mà thao tác thêm phần tử được thực hiện ở
1 đầu danh sách con fthao tác lấy phần tử ra đươc thực hiện ở đầu kia của danh sách
*nguyên tắc hoạt động: hoạt động theo nguyên tắc FIFO “vào trước – ra trước”
*ví dụ: xếp hang đợi thanh toán ở siêu thị, soát vé ở rạp chiếu phim
NGĂN XẾP
*khái niệm: ngăn xếp à 1 kiểu danh sách mà thao tác thêm và bớt phần tử được
thực hiện chỉ một đầu danh sách gọi là đỉnh
*nguyên tắc hoạt động: theo nguyên tắc LIFO “vào trước – ra sau”
*ví dụ ngăn xếp tủ quần áo, chồng sách, hộp chứa đạn súng trường
Trang 5while(i<=j);
Trang 6printf ("\n day sau khi sap xep la:");
for (int i=0; i<=n; i++)
if(dem==0)printf("\n khong co phan tu chan duong");
}
Trang 7int main() // ham chinh
#define max 100 // toi da 100 ptu
typedef struct // dinh nghia kieu
Trang 9elseq.head=q.head+1;
Trang 10cout<<p.data[p.head]<<" ";p.head=p.head+1;
}}
Trang 15void them(stack &s,int x){ // them ptu
if(ktday(s)) cout<<"Stack day";
Trang 18typedef node *stack;
void ktao(stack *top)
Trang 19}
void bot(stack *top,int *v) // bot ptu
{ if (ktrong(*top)) printf ("ds rong!");else
Trang 20int main() // ham chinh
Trang 21typedef struct node
typedef struct node *tree;
void khoitao(tree &T) // khoi tao cay{
Trang 25int demnut(tree &T) // dem nut
Trang 26if(chieucao(T->left)>chieucao(T->right))return chieucao(T->left)+1;
Trang 28printf("\nChieu cao cua cay la: %d", chieucao(T));printf("\n Nhap nut can xoa la:\n");
scanf("%d", &x);
if(xoa_node(T,x))
printf("Xoa thanhcong!\n");
else
printf("Xoa khong thanhcong!\n");
printf("Duyet cay theo thu tu truoc.\n");