Hệ sinh thái số IELP
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Hệ sinh thái số IELP

Học lập trình với Hệ sinh thái số IELP
 
Trang ChínhTrang Chính  CalendarCalendar  Latest imagesLatest images  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  
Tìm kiếm
 
 

Display results as :
 
Rechercher Advanced Search
Keywords
điểm Trần Phạm phương nhật nguyễn 2022 Minh sach HOAI pháp BANG Hoàng Phần hình tổng wavio Nhàn tích giác chứa được Thành thưởng đặng sinh
Latest topics
» Buổi học số 1. Cấu trúc tuần tự trong C++ (Bài 1 -> Bài 15)
Vũ Hoàng Diệu Linh EmptyThu Apr 25, 2024 10:49 am by quanle1120

» Chấm bài trực tuyến với Jusolan.ddns.net
Vũ Hoàng Diệu Linh EmptyWed Apr 24, 2024 9:15 pm by Admin

» Bài kiểm tra giữa Học kỳ II
Vũ Hoàng Diệu Linh EmptyWed Apr 05, 2023 8:00 am by Nguyễn Đức Mạnh

» Bài giữa kì 2
Vũ Hoàng Diệu Linh EmptyMon Apr 03, 2023 8:34 am by Khách viếng thăm

» Bài giữa kì tin Lê Đức Anh
Vũ Hoàng Diệu Linh EmptySun Apr 02, 2023 8:33 pm by Tendalda06

» Nghiêm Tuấn Tú
Vũ Hoàng Diệu Linh EmptySat Apr 01, 2023 9:03 am by Nghiêm Tuấn Tú

» Nguyễn Trần Ý Nhi
Vũ Hoàng Diệu Linh EmptySat Apr 01, 2023 8:23 am by Nguyễn Trần Ý Nhi

» Nguyễn Kim Anh
Vũ Hoàng Diệu Linh EmptySat Apr 01, 2023 12:05 am by Khách viếng thăm

» Trần Thanh Trà
Vũ Hoàng Diệu Linh EmptyFri Mar 31, 2023 11:10 pm by Trần Thanh Trà

May 2024
MonTueWedThuFriSatSun
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendarCalendar
Top posting users this week
No user

 

 Vũ Hoàng Diệu Linh

Go down 
Tác giảThông điệp
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyFri Jul 29, 2022 12:18 am

Code:
/*
   Cho danh sách L, hãy đảo ngược danh sách
*/

#include<bits/stdc++.h>

using namespace std;

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

int n;
node * L = NULL;
node * L2;

void IS(node *&L, int u){
   node *q, *R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q;
       R = q;
   } else {
       R->next = q;
       R = q;
   }
}

void out(node *&L){
   node * p = L;
   while(p != NULL){
       cout << p->data << ' ';
       p = p->next;
   }
}

void reverseList(node * L1,node * &L2){
   node * p, * q, *pre;
   p = L1; L2 = NULL;
   while (p != NULL){
       q = new node;
       q->data = p->data;
       q->next = L2;
       L2 = q;
       p = p->next;
   }
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   cin >> n;
   int x;
   for(int i = 1; i <= n; i++){
       cin >> x;
       IS(L, x);
   }
   out(L);
   cout << '\n';
   reverseList(L, L2);
   out(L2);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:19 am; sửa lần 1.
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyFri Jul 29, 2022 12:19 am

Code:
/*
   Cho hai danh sách L1, L2 là 2 dãy đơn điệu tăng.
   Tìm giao của 2 danh sách
*/  

#include<bits/stdc++.h>

using namespace std;

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

node * L1 = NULL;
node * L2 = NULL;
node * L3 = NULL;

void IS(node *&L, int u){
   node *q, *R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q;
       R = q;
   } else{
       R->next = q;
       R = q;
   }
}

void insertL1L2(node * L1, node * L2, node *&L3){
   node *p, *q, *lastL3, *r;
   p = L1;
   q = L2;
   lastL3 = NULL;
   L3 = NULL;
   while(p != NULL && q != NULL){
       if(p->data < q->data) p = p->next;
           else if(p->data == q->data){
               IS(L3, p->data);
               p = p->next;
           }
               else q = q->next;
   }
}

void out(node *L){
   node *p = L;
   while(p != NULL){
       cout << p->data << ' ';
       p = p->next;
   }
   cout << '\n';
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   int n, m;
   int x;
   cin >> n >> m;
   for(int i = 1; i <= n; i++){
       cin >> x;
       IS(L1, x);
   }
   for(int i = 1; i <= m; i++){
       cin >> x;
       IS(L2, x);
   }
   out(L1);
   out(L2);
   insertL1L2(L1, L2, L3);
   out(L3);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:57 am; sửa lần 1. (Reason for editing : em sửa để nó thành code kéo kéo trông cho chuyên nghiệp =)))))
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyFri Jul 29, 2022 12:20 am

Code:
/*
   Cho dãy N số, X;
   Xóa các giá trị bằng x trong dãy.
*/

#include<bits/stdc++.h>

using namespace std;

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

node * L = NULL;

void IS(node *&L, int u){
   node *q, *R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q;
       R = q;
   } else{
       R->next = q;
       R = q;
   }
}

node *find(node *L, int u){ // trả về node thứ u của danh sách
   node *p = L;
   while(p != NULL && p->data != u) p = p->next;
   return p;
}

void X_dele(node *&L, int x){ // xóa một node có giá trị bằng x
   node * p = find(L, x);
   node * pre;
   pre = L;
   while(pre->next != p) pre = pre->next;
   node * tmp = p -> next;
   pre->next = tmp;
   delete p;
}

void out(node *&L){
   node * p = L;
   while(p != NULL){
       cout << p->data << ' ';
       p = p->next;
   }
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   int n;
   int x;
   cin >> n;
   for(int i = 1; i <= n; i++){
       cin >> x;
       IS(L, x);
   }
   out(L);
   cout << '\n';
   cin >> x;
   X_dele(L, x);
   out(L);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:57 am; sửa lần 1.
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyFri Jul 29, 2022 12:21 am

Code:
/*
   Cho dãy N số nguyên, k, x
   Chèn x vào sau node có giá trị k
*/

#include<bits/stdc++.h>

const int nmax = 100007;

using namespace std;

int n;
int a[nmax];

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

node * L = NULL;

void IS(node * &L, int u){
   node *q, *R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q;
       R = q;
   } else{
       R->next = q;
       R = q;
   }
}

void out(node *L){
   node *p = L;
   while(p != NULL){
       cout << p->data << ' ';
       p = p->next;
   }
}

node *find(node *L, int u){ // trả về node thứ u của danh sách
   node *p = L;
   while(p != NULL && p->data != u) p = p->next;
   return p;
}

void PB(node *&L, int x, int y){ // thuật: Tạo node mới q, gán gtri cho q, trỏ q vào node sau p, trỏ p vào q
   node *p = find(L, y);
   node * q;
   q = new node;
   q->data = x;
   q->next = p->next;
   p->next = q;
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   cin >> n;
   int x;
   for(int i = 1; i <= n; i++){
       cin >> x;
       IS(L, x);
   }
   out(L);
   cout << '\n';
   int k;
   cin >> x >> k;
   PB(L, x, k);
   out(L);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:57 am; sửa lần 1. (Reason for editing : em sửa để nó thành cái code kéo kéo trông cho chuyên nghiệp =))))
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyFri Jul 29, 2022 12:41 am

Code:
/*
   Cho danh sách L, in danh sách L ra
*/

#include<bits/stdc++.h>

using namespace std;

int n;

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

node *L = NULL;

void IS(node *&L, int u){
   node * q, * R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q;
       R = q;
   } else{
       R->next = q;
       R = q;
   }
}

void out(node *&L){
   node * p = L;
   while(p != NULL){
       cout << p->data << ' ';
       p = p->next;
   }
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   cin >> n;
   int x;
   for(int i = 1; i <= n; i++){
       cin >> x;
       IS(L, x);
   }
   out(L);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:58 am; sửa lần 1. (Reason for editing : em sửa để nó thành code kéo kéo trông cho chuyên nghiệp =)))))
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyFri Jul 29, 2022 12:47 am

Code:
// Đếm số lượng node của danh sách L

#include<bits/stdc++.h>

using namespace std;

int n;

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

node * L = NULL;

void IS(node *&L, int u){
   node *q, *R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q; R = q;
   }else{
       R->next = q;
       R = q;
   }
}

int Count_Node(node *&L){
   int res = 0;
   node *p = L;
   while(p != NULL){
       res++;
       p = p->next;
   }
   return res;
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   int x;
   cin >> n;
   for(int i = 1; i <= n; i++){
       cin >> x;
       IS(L, x);
   }
   cout << Count_Node(L);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:58 am; sửa lần 1. (Reason for editing : em sửa để nó thành code kéo kéo trông cho chuyên nghiệp =)))))
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyFri Jul 29, 2022 12:52 am

Code:
// Kiem tra x co xuat hien trong danh sach k
#include<bits/stdc++.h>

using namespace std;

int n;

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

node * L = NULL;

void IS(node *&L, int u){
   node *q, *R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q; R = q;
   }else{
       R->next = q;
       R = q;
   }
}

bool X_check(node *&L, int x){
   node *p = L;
   while(p != NULL){
       if(p->data == x) return true;
       p = p->next;
   }
   return false;
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   int x;
   cin >> n;
   for(int i = 1; i <= n; i++){
       cin >> x;
       IS(L, x);
   }
   cout << X_check(L, x);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:56 am; sửa lần 1. (Reason for editing : em sửa để nó thành cái code kéo kéo trông cho chuyên nghiệp =))))
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyFri Jul 29, 2022 12:56 am

Code:
// Nếu x chưa có trong danh sách, chèn x vào cuối danh sách

#include<bits/stdc++.h>

using namespace std;

int n;

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

node * L = NULL;

void IS(node *&L, int u){
   node *q, *R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q; R = q;
   }else{
       R->next = q;
       R = q;
   }
}

bool X_check(node *&L, int x){
   node *p = L;
   while(p != NULL){
       if(p->data == x) return true;
       p = p->next;
   }
   return false;
}

void out(node *&L){
   node *p = L;
   while(p != NULL){
       cout << p->data << ' ';
       p = p->next;
   }
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   int x, y;
   cin >> n >> x;
   for(int i = 1; i <= n; i++){
       cin >> y;
       IS(L, y);
   }
   if(!X_check(L, x)) IS(L, x);
   out(L);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:56 am; sửa lần 1. (Reason for editing : em sửa để nó thành code kéo kéo trông cho chuyên nghiệp =)))))
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyFri Jul 29, 2022 1:00 am

Code:
// chèn x vào đầu danh sách

#include<bits/stdc++.h>

using namespace std;

int n;

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

node * L = NULL;

void IS(node *&L, int u){
   node *q, *R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q; R = q;
   }else{
       R->next = q;
       R = q;
   }
}

bool X_check(node *&L, int x){
   node *p = L;
   while(p != NULL){
       if(p->data == x) return true;
       p = p->next;
   }
   return false;
}

void out(node *&L){
   node *p = L;
   while(p != NULL){
       cout << p->data << ' ';
       p = p->next;
   }
}

void IS_Head(node *&L, int x){
   node * q;
   q = new node;
   q->data = x;
   q->next = L;
   L = q;
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   int x, y;
   cin >> n >> x;
   for(int i = 1; i <= n; i++){
       cin >> y;
       IS(L, y);
   }
   IS_Head(L, x);
   out(L);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:55 am; sửa lần 1. (Reason for editing : em sửa để nó thành cái code kéo kéo trông cho chuyên nghiệp =))))
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyFri Jul 29, 2022 1:04 am

Code:
// xóa node đầu tiên của danh sách

#include<bits/stdc++.h>

using namespace std;

int n;

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

node * L = NULL;

void IS(node *&L, int u){
   node *q, *R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q; R = q;
   }else{
       R->next = q;
       R = q;
   }
}

void out(node *&L){
   node *p = L;
   while(p != NULL){
       cout << p->data << ' ';
       p = p->next;
   }
}

void Delete_Head(node *&L){
   if(L == NULL) return;
   node *p = L;
   L = L->next;
   delete p;
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   int x, y;
   cin >> n >> x;
   for(int i = 1; i <= n; i++){
       cin >> y;
       IS(L, y);
   }
   Delete_Head(L);
   out(L);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:54 am; sửa lần 1. (Reason for editing : em sửa để nó thành code kéo kéo trông cho chuyên nghiệp =))))
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyFri Jul 29, 2022 1:09 am

Code:
// xóa node cuối cùng của danh sách

#include<bits/stdc++.h>

using namespace std;

int n;

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

node * L = NULL;

void IS(node *&L, int u){
   node *q, *R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q; R = q;
   }else{
       R->next = q;
       R = q;
   }
}

void out(node *&L){
   node *p = L;
   while(p != NULL){
       cout << p->data << ' ';
       p = p->next;
   }
}

void Delete_Back(node *&L){
   if(L == NULL) return;
   if(L->next == NULL){
       delete L;
       return;
   }
   node *p = L, *q;
   while (p->next->next != NULL) p = p->next;
   q = p -> next;
   p->next = NULL;
   delete q;
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   int x, y;
   cin >> n >> x;
   for(int i = 1; i <= n; i++){
       cin >> y;
       IS(L, y);
   }
   Delete_Back(L);
   out(L);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:21 am; sửa lần 1. (Reason for editing : em sửa để nó thành code kéo kéo trông cho chuyên nghiệp =))))
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyFri Jul 29, 2022 1:12 am

Code:
/*
   Cho dãy N số, X;
   Xoá nút đứng liền sau nút có giá trị là X trong trong danh sách.
*/

#include<bits/stdc++.h>

using namespace std;

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

node * L = NULL;

void IS(node *&L, int u){
   node *q, *R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q;
       R = q;
   } else{
       R->next = q;
       R = q;
   }
}

node *find(node *L, int u){ // trả về node thứ u của danh sách
   node *p = L;
   while(p != NULL && p->data != u) p = p->next;
   return p;
}

void X_dele(node *&L, int x){
   node * p = find(L, x);
   if (L == NULL) return;
   if (p->next == NULL) return; //không có phần tử sau p
   node * q;
   q = p->next;
   p->next = q->next;
   delete q;
}

void out(node *&L){
   node * p = L;
   while(p != NULL){
       cout << p->data << ' ';
       p = p->next;
   }
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   int n;
   int x;
   cin >> n;
   for(int i = 1; i <= n; i++){
       cin >> x;
       IS(L, x);
   }
   out(L);
   cout << '\n';
   cin >> x;
   X_dele(L, x);
   out(L);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:20 am; sửa lần 1.
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptySat Jul 30, 2022 8:41 am

Code:
// Cho N, phân tích N thành tích các thừa số nguyên tố

#include<bits/stdc++.h>

using namespace std;

int n;

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

node * L = NULL;

void IS(node *&L, int u){ // queue
   node *q, *R;
   q = new node;
   q->data = u;
   q->next = NULL;
   if(L == NULL){
       L = q;
       R = q;
   } else{
       R->next = q;
       R = q;
   }
}

void get(){
   int tmp;
   for(int i = 2; i <= n; i++){
       tmp = 0;
       while(n % i == 0){
           tmp++;
           n /= i;
       }
       if(tmp >= 1) for(int j = 1; j <= tmp; j++) IS(L, i);
   }
}

void printList(node *&L){
   node *p = L;
   while(p != NULL){
       cout << p->data << ' ';
       p = p->next;
   }
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   cin >> n;
   get();
   printList(L);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:20 am; sửa lần 1.
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptySat Jul 30, 2022 9:15 am

Code:
// Cho số nguyên dương N, đổi N sang hệ nhị phân

#include<bits/stdc++.h>

using namespace std;

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

node * L = NULL;

void IS(node *&L, int u){ // stack
   node * q;
   q = new node;
   q->data = u;
   q->next = L;
   L = q;
}

void printfList(node *&L){
   node *p = L;
   while(p != NULL){
       cout << p->data << ' ';
       p = p->next;
   }
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   int n;
   cin >> n;
   while(n > 0){
       IS(L, n%2);
       n /= 2;
   }
   printfList(L);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:18 am; sửa lần 1.
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptySat Jul 30, 2022 10:08 am

Code:
// Kiểm tra biểu thức ngoặc đúng

#include<bits/stdc++.h>

using namespace std;

struct node{
   char data;
   node * next;
};

node * L = NULL;

void IS(node *&L, int u){ // stack
   node * q;
   q = new node;
   q->data = u;
   q->next = L;
   L = q;
}

bool empty(node *&L){
   return (L == NULL);
}

void pop(node * &L)
{
   if (L == NULL) return; //Nếu L rỗng, thì thoát không làm gì
   node * p = L;
   L = L->next; //Chuyển con trỏ sang nút kề phải
   delete p; //Xoá nút đầu tiên
}

bool check(string s){
   for(int i = 0; i < s.size(); i++){
       if(s[i] == '(') IS(L, s[i]);
           else{
               if(empty(L)){
                   return false;
                   break;
               } else pop(L);
           }
   }
   return empty(L);
}

int main(){
   ios_base::sync_with_stdio(0);
   cin.tie(0);
   string s;
   cin >> s;
   cout << check(s);
   return 0;
}


Được sửa bởi vhdlinh ngày Tue Aug 02, 2022 9:18 am; sửa lần 1.
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyTue Aug 02, 2022 9:39 am

Code:
/*
    Cho dãy N số và K.
    -Tạo cây nhị phân tìm kiếm dãy trên
    -Hãy cho biết khóa K có trong danh sách hay không?
*/

#include<bits/stdc++.h>

using namespace std;

int n, k;

struct node{
    int data;
    node *left, *right;
};

// struct ch{
//    node *head;
//    node *finish;
// };

node * L = NULL;

void IS(node *&L, int u){ // thêm phần tử vào cây nhị phân tìm kiếm
    if(L == NULL){ // nếu cây rỗng
        node *q = new node;
        q->data = u;
        q->left = NULL;
        q->right = NULL;
        L = q;
    } else { // cây khác rỗng
        if(L->data > u) IS(L->left, u);
            else if(L->data < u) IS(L->right, u);
    }
}

bool search1(node * T, int k){ // đệ qui
    if(T == NULL) return false;
        else{
            if(T->data > k) return search1(T->left, k);
                else if(T->data == k) return true;
                    else return search1(T->right, k);
        }
}

bool search2(node * T, int k){ // tìm trên cây nhị phân
    node * p = T;

    while(p != NULL){
        if(p->data < k) p = p->right;
            else if(p->data == k) break;
                else p = p->left;
    }
   
    return (p != NULL);
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int x;

    cin >> n >> k;;
    for(int i = 1; i <= n; i++){
        cin >> x;
        IS(L, x);
    }
   
    cout << search1(L, k) << '\n';
    cout << search2(L, k);

    return 0;
}
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyTue Aug 02, 2022 9:52 am

Code:
/*
    Cho dãy N số nguyên và K.
        -Tạo cây nhị phân tìm kiếm lưu dãy trên
        -Hãy duyệt cây theo thứ tự trước
*/

#include<bits/stdc++.h>

using namespace std;

int n;

struct node{
    int data;
    node *left, *right;
};

node * L = NULL;

void IS(node *&L, int u){
    if(L == NULL){
        node * q = new node;
        q->data = u;
        q->left = NULL;
        q->right = NULL;
        L = q;
    } else{
        if(L->data > u) IS(L->left, u);
            else if (L->data < u) IS(L->right, u);
    }
}

void Preorder (node * T){
    // Nếu cây rỗng thì không làm gì
    if (T != NULL){ // cây khác rỗng
        cout << T->data << ' '; // Xử lí nút thăm
        Preorder (T -> left); // Duyệt cây con trái
        Preorder (T -> right); // Duyệt cây con phải
    }
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int x;

    cin >> n;
    for(int i = 0; i <= n; i++){
        cin >> x;
        IS(L, x);
    }

    Preorder(L);

    return 0;
}
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyTue Aug 02, 2022 10:04 am

Code:
/*
    Cho dãy N số nguyên và K.
        -Tạo cây nhị phân tìm kiếm lưu dãy trên
        -Hãy duyệt cây theo thứ tự trước
        -Hãy duyệt cây theo thứ tự giữa
        -Hãy duyệt cây theo thứ tự sau
*/

#include<bits/stdc++.h>

using namespace std;

int n;

struct node{
    int data;
    node *left, *right;
};

node * L = NULL;

void IS(node *&L, int u){
    if(L == NULL){
        node * q = new node;
        q->data = u;
        q->left = NULL;
        q->right = NULL;
        L = q;
    } else{
        if(L->data > u) IS(L->left, u);
            else if (L->data < u) IS(L->right, u);
    }
}

void pre_order (node * T){
    // Nếu cây rỗng thì không làm gì
    if (T != NULL){ // cây khác rỗng
        cout << T->data << ' '; // Xử lí nút thăm
        pre_order (T->left); // Duyệt cây con trái
        pre_order (T->right); // Duyệt cây con phải
    }
}

void mid_order(node * T){
    // Nếu cây rỗng thì không làm gì
    if(T != NULL){
        mid_order(T->left);
        cout << T->data << ' ';
        mid_order(T->right);
    }
}

void rear_order(node * T){
    if(T != NULL){
        rear_order(T->left);
        rear_order(T->right);
        cout << T->data << ' ';
    }
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int x;

    cin >> n;
    for(int i = 0; i <= n; i++){
        cin >> x;
        IS(L, x);
    }

    pre_order(L);
    cout << '\n';

    mid_order(L);
    cout << '\n';
   
    rear_order(L);
    return 0;
}
Về Đầu Trang Go down
vhdlinh




Tổng số bài gửi : 34
Join date : 08/05/2022

Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh EmptyTue Aug 02, 2022 10:32 am

Code:
/*
    Cho dãy N số nguyên.
        -Tạo BinarySearch Tree lưu dãy trên
        -Tìm khóa nhỏ nhất của cây (khóa nhỏ nhất của cây là khóa cực trái)
        -Tìm khóa lớn nhất của cây (khóa lớn nhất của cây là khóa cực phải)
*/

#include<bits/stdc++.h>

using namespace std;

int n;

struct node{
    int data;
    node *left, *right;
};

node *L = NULL;

void IS(node *&L, int u){
    if(L == NULL){
        node * q = new node;
        q->data = u;
        q->left = NULL;
        q->right = NULL;
        L = q;
    } else{
        if(L->data < u) IS(L->right, u);
            else if(L->data > u) IS(L->left, u);
    }
}

// Minnode: là node cực trái

node * min_node1(node *L){ // đệ qui
    if(L->left == NULL) return L; 
    min_node1(L->left);
}

node * min_node2(node *L){ // lặp
    node * p = L;
    while(p != NULL) p = p->left;
    return p;
}

// maxnode: là node cực phải

node * max_node1(node *L){ // đệ qui
    if(L->right == NULL) return L; 
    max_node1(L->right);
}

node * max_node2(node *L){ // lặp
    node * p = L;
    while(p != NULL) p = p->right;
    return p;
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int x;

    cin >> n;
    for(int i = 0; i <= n; i++){
        cin >> x;
        IS(L, x);
    }

    // node * t = min_node1(L);
    // cout << t->data;

    cout << min_node1(L)->data << '\n';
    cout << min_node2(L)->data << '\n';
    cout << max_node1(L)->data << '\n';
    cout << max_node2(L)->data << '\n';

    return 0;
}
Về Đầu Trang Go down
Sponsored content





Vũ Hoàng Diệu Linh Empty
Bài gửiTiêu đề: Re: Vũ Hoàng Diệu Linh   Vũ Hoàng Diệu Linh Empty

Về Đầu Trang Go down
 
Vũ Hoàng Diệu Linh
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Hoàng Mai Linh
» Nguyễn Diệu Linh bài 1
» Nguyễn Diệu Linh bài 2
» Nguyễn Diệu Linh bài 3
» Nguyễn Diệu Linh

Permissions in this forum:Bạn không có quyền trả lời bài viết
Hệ sinh thái số IELP :: Thực nghiệm phần C++ :: 2-Đội dự tuyển HSG 2022-2023-
Chuyển đến