Microsoft Word - danh-sach-lien-ket-doi-trong-c.docx

Tài liệu tương tự
Microsoft Word - cau-truc-du-lieu-danh-sach-lien-ket.docx

Microsoft Word - cau-truc-du-lieu-hang-doi.docx

Danh sách tuyến tính kiểu hàng đợi Danh sách tuyến tính kiểu hàng đợi Bởi: Khoa CNTT ĐHSP KT Hưng Yên ĐỊNH NGHĨA Hàng đợi là một vật chứa (container)

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 13. Hàm Nội dung 1. Khái niệm hàm 2. Khai báo và sử dụn

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 9. Vào ra dữ liệu trong C Các lệnh vào ra dữ liệu C cun

Cây và cây nhị phân Cây và cây nhị phân Bởi: Trần Hạnh Nhi CẤU TRÚC CÂY Định nghĩa 1: cây là một tập hợp T các phần tử (gọi là nút của cây) trong đó c

PowerPoint Template

TRƯỜnG ĐẠI HỌC BÁCH KHOA HÀ nội VIỆn CÔnG nghệ THÔnG TIn VÀ TRUYỀn THÔnG TIN HỌC ĐẠI CƯƠNG Bài 10. Các cấu trúc lập trình trong C Nội dung 1. Cấu trúc

Cây nhị phân tìm kiếm Cây nhị phân tìm kiếm Bởi: Trần Hạnh Nhi CÂY NHỊ PHÂN TÌM KIẾM Định nghĩa: Cây nhị phân tìm kiếm (CNPTK) là cây nhị phân trong đ

Lập trình và ngôn ngữ lập trình

Chương trình dịch

Lớp và đối tượng-các hàm và các lớp friend Lớp và đối tượng-các hàm và các lớp friend Bởi: Thanh Hiền Vũ CÁC HÀM VÀ CÁC LỚP friend Một hàm friend của

Microsoft Word - bo_tien_xu_ly_trong_c.docx

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 11. Mảng và xâu kí tự Nội dung 1. Mảng 2. Xâu kí tự 2 1

Những cơ sở của ngôn ngữ C# Những cơ sở của ngôn ngữ C# Bởi: phamvanviet truonglapvy Trong chương này sẽ trình bày về hệ thống kiểu trong C#; phân biệ

Chương 1:

Các biến và các kiểu dữ liệu trong JavaScript Các biến và các kiểu dữ liệu trong JavaScript Bởi: Hà Nội Aptech Các biến (Variables) Biến là một tham c

Hàm và lớp template trong Lập trình hướng đối tượng Hàm và lớp template trong Lập trình hướng đối tượng Bởi: unknown Trong phần này, chúng ta tìm hiểu

PowerPoint Presentation

Hệ điều hành Bài tập tuần 6 1 Quản lý bộ nhớ Bài tập 1 : Xem thông tin bộ nhớ 1. Sử dụng top, ps đọc thông tin về kích thước vùng nhớ của 1 tiến trình

OpenStax-CNX module: m Giới thiệu về ngôn ngữ C và môi trường turbo C 3.0 ThS. Nguyễn Văn Linh This work is produced by OpenStax-CNX and licens

Trường ĐHBK Hà Nội Khoa Điện Bộ môn Điều khiển Tự động Tài liệu hướng dẫn thực hành: KĨ THUẬT LẬP TRÌNH C/C++ Bài 1: Lập trình cơ sở 1 Mục đích bài th

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 11. Tệp tin Nội dung 1. Khái niệm cơ bản 2. Các thao tá

Tìm hiểu ngôn ngữ lập trình Visual Basic Tìm hiểu ngôn ngữ lập trình Visual Basic Bởi: Khuyet Danh Tìm hiểu ngôn ngữ lập trình Visual Basic Tổng quan

Câu lệnh (statement) Câu lệnh (statement) Bởi: Khuyet Danh Trong C# một chỉ dẫn lập trình đầy đủ được gọi là câu lệnh. Chương trình bao gồm nhiều câu

Array, Indexer và Collection Array, Indexer và Collection Bởi: phamvanviet truonglapvy Mảng (Array) Mảng là một tập hợp các phần tử có cùng kiểu, được

Microsoft Word - su_dung_sqlite_voi_php.docx

Template and Exception Template and Exception Bởi: Thanh Hiền Vũ TEMPLATE Trong phần này, chúng ta tìm hiểu về một trong các đặc tính còn lại của C++,

Copyright vietjack.com Chuỗi (String) trong C# Trong C#, bạn có thể sử dụng các chuỗi (string) như là mảng các ký

Microsoft Word - status_code_trong_servlet.docx

Microsoft Word - form_trong_html.docx

Nhúng mã-cách khai báo biến Nhúng mã-cách khai báo biến Bởi: Khoa CNTT ĐHSP KT Hưng Yên Nhúng mã javascript trong trang HTML Bạn có thể nhúng JavaScri

Bài 7. Con trỏ Mục tiêu: 1. Luyện tập sử dụng con trỏ và địa chỉ của các biến 2. Sử dụng con trỏ khi thao tác với mảng. Giới hạn: không dùng các thư v

Slide 1

Animation, Modules 6 - Hoạt hình, tách file

Slide 1

VT ICT 1. DOANH NGHIỆP ĐĂNG KÝ TÀI KHOẢN 1.1. DOANH NGHIỆP ĐĂNG KÝ TÀI KHOẢN Doanh nghiệp muốn làm thủ tục công bố sản phẩm mỹ phẩm thì cần đăng ký tà

User manual template

BÀI TẬP THỰC HÀNH

UART0

Microsoft Word - Huong dan su dung Mailchimp.docx

Công ty CP công nghệ thẻ NACENCOMM HÓA ĐƠN ĐIỆN TỬ CA2 CÔNG TY CỔ PHẦN CÔNG NGHỆ THẺ NACENCOMM TÀI LIỆU NGHIỆP VỤ HÓA ĐƠN ĐIỆN TỬ CA2 Hà Nội 12/2017 1

Cách viết một ứng dụng trên microsoft windows Cách viết một ứng dụng trên microsoft windows Bởi: Khuyet Danh CÁCH VIẾT MỘT ỨNG DỤNG TRÊN MICROSOFT WIN

Microsoft Word - session_tracking_trong_servlet.docx

Bài 4 Tựa bài

Kết nối và thao tác với CSDL trong ASP Kết nối và thao tác với CSDL trong ASP Bởi: Khoa CNTT ĐHSP KT Hưng Yên Qui tắc chung - Tạo đối tượng Connection

_IFMP_exam.dvi

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ỨNG DỤNG HÓA ĐƠN ĐIỆN TỬ CYBERBILL CLOUD V2.0 Phiên bản V2.0

TÀI LIỆU HƯỚNG DẪN CÀI ĐẶT HƯỚNG DẪN CÀI ĐẶT VÀ KIỂM TRA ỨNG DỤNG QUẢN LÝ BÁN HÀNG

NGÔN NGƯ LÂ P TRIǸH Biên tập bởi: nguyenvanlinh

Microsoft Word - HDSD digiTool.doc

Hướng dẫn cụ thể từng bước để đăng ký sử dụng Đơn đăng ký không tín chỉ sau đó ghi danh vào các lớp không tín chỉ. 1 tháng Sáu, 2018 Các sinh viên dự

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 5. Kiểu dữ liệu và biểu thức trong C Nội dung 1. Các ki

Phương pháp biểu diễn thuật toán Phương pháp biểu diễn thuật toán Bởi: Khoa CNTT ĐHSP KT Hưng Yên Khi chứng minh hoặc giải một bài toán trong toán học

Kiểu dữ liệu văn bản Kiểu dữ liệu văn bản Bởi: PGS. TS. NGƯT Phạm Văn Huấn Ngoài những dữ liệu số như các số nguyên, số thực, máy tính còn có thể lưu

Công Ty Công Nghệ Tin Học Mũi Tên Vàng Địa chỉ: Số 7 Nam Quốc Cang, Quận 1, TP HCM Điện thoại: Hotline: Website:

Ví dụ về duyệt đồ thị ưu tiên chiều sâu DFS và ứng dụng Đồ thị ví dụ: Nguyễn Hữu Tuân vimaru.edu.vn Hình 1: Đồ thị vô hướng có 8 đỉnh Với đồ thị trên,

Microsoft Word - jsp_syntax.docx

Lớp đối tượng String Lớp đối tượng String Bởi: Khuyet Danh Ngôn ngữ C# hỗ trợ khá đầy đủ các chức năng của kiểu chuỗi mà chúng ta có thể thấy được ở c

HƯỚNG DẪN CÀI ĐẶT & CẬP NHẬT DỮ LIỆU CỔ PHIẾU TỪ DATA24 VÀO PHẦN MỀM AMIBROKER I. CÀI ĐẶT PHẦN MỀM DATA24 Bước 1: Download file cài đặt Data24 tại Web

Chương trình dịch

Microsoft Word - doc_ghi_file_trong_nodejs.docx

Microsoft Word - server_response_trong_servlet.docx

BỘ GIAO THÔNG VẬN TẢI TRƢỜNG ĐẠI HỌC HÀNG HẢI BỘ MÔN: KHOA HO C MA Y TI NH KHOA: CÔNG NGHỆ THÔNG TIN BÀI GIẢNG KỸ THUẬT LẬP TRÌNH C TÊN HỌC PHẦN : KỸ

TRUNG TÂM KINH DOANH VNPT ĐỒNG THÁP o0o TÀI LIỆU HƯỚNG DẪN KHAI THÁC Website QUẢN LÝ CÔNG NỢ - HÓA ĐƠN ĐIỆN TỬ dongthap.vnpt.vn/tt

Microsoft Word - jsp_client_request.docx

View, Procedure, Function & Trigger

Tài Liệu Hướng Dẫn Sử Dụng Ký hiệu Ngày phát hành 20/11/2014 Trang TÀI LIỆU HƯỚNG DẪN SỬ DỤNG DỊCH VỤ NHẬN TIỀN WESTERN UNION QUA ACB ONLINE 1/10

C++ và lập trình hướng đối tượng C++ và lập trình hướng đối tượng Bởi: Phạm Văn Ất Làm việc với TC Các ví dụ trong cuốn sách này sẽ viết và thực

CÔNG TY CỔ PHẦN CÔNG NGHỆ VSD VIỆT NAM Số 35 Láng Hạ, Phường Thành Công, Ba Đình, Hà Nội Tel: (04) (04) Fax: (04) co

Microsoft Word - thuoc_tinh_trong_jquery.docx

Microsoft Word - fragment_trong_android.docx

Copyright vietjack.com Nạp chồng toán tử trong C# Operator Overloading là Nạp chồng toán tử. Bạn có thể tái định

Microsoft Word - Huong dan su dung phan mem Evyhome.docx

HƯỚNG DẪN SỬ DỤNG HÓA ĐƠN ĐIỆN TỬ

HƯỚNG DẪN SỬ DỤNG MOBILE APP TRÊN iOS

TÓM TẮT HƢỚNG DẪN SỬ DỤNG CHƢƠNG TRÌNH HỌC TIẾNG ANH TRỰC TUYẾN ENGLISH DISCOVERIES ONLINE

BỘ GIÁO DỤC VÀ ĐÀO TẠO TÀI LIỆU HƯỚNG DẪN SỬ DỤNG CHỨC NĂNG ĐIỀU CHỈNH NGUYỆN VỌNG ĐĂNG KÝ XÉT TUYỂN TRỰC TUYẾN (Dành cho Thí sinh Điều chỉnh nguyện v

CÔNG BÁO/Số ngày PHẦN I. VĂN BẢN QUY PHẠM PHÁP LUẬT BỘ NỘI VỤ BỘ NỘI VỤ Số: 09/2010/TT-BNV CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Đ

Microsoft PowerPoint - 03_Robo_Kick

TRƯỜNG ĐẠI HỌC NGÂN HÀNG TP. HCM KHOA TÀI CHÍNH Mã môn học: ITS301 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập Tự do Hạnh phúc TP. Hồ Chí Minh, ngày 19

FAQ: Hướng dẫn cấu hình Wireless Router N300 DIR-612 Release date: 17/12/2018 Model support: DIR-612 H/W: Bx F/W: N/A FAQ: Hướng dẫn cấu hình Wireless

Hướng dẫn sử dụng Adobe Presenter Pro 7.0

Một số phân tích an toàn về đặc điểm thiết kế của chế độ EME2 Nguyễn Tuấn Anh Bài báo này phân tích về đặc điểm thiết kế của EME2. Các phân tích được

Bài 3 Tựa bài

Microsoft Word - Cau hoi on tap.doc

Hỗ trợ ôn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] SMS MARKETING TỪ A TỚI Z Bùi Quốc Hưng SMS MARKETING TỪ A TỚI Z Giới thiệu về SMS marketing

BỔ TÁT TÙNG ĐỊA DŨNG XUẤT TRONG PHÁP HOA KINH HT. Trí Quảng --- o0o --- Nguồn Chuyển sang ebook Người thực hiện : Na

PowerPoint Presentation

HƯỚNG DẪN SỬ DỤNG VNCS HOME TRADING 1. Bảng mô tả Thuật ngữ viết tắt Viết tắt CTCK KH TK PHT Mô tả Công ty chứng khoán Khách hàng Tài khoản Phát hành

Chuỗi Chuỗi Bởi: phamvanviet truonglapvy Chuỗi (string) trong C# là một kiểu dựng sẵn như các kiểu int, long, có đầy đủ tính chất mềm dẻo, mạnh mẽ và

Hướng dẫn làm bài thi xếp lớp tiếng Anh GIỚI THIỆU VỀ BÀI THI XẾP LỚP Bài thi kiểm tra xếp lớp tiếng Anh của Cambridge English là dạng bài thi trực tu

Xử lý ngoại lệ

IPSec IPSec Bởi: Phạm Nguyễn Bảo Nguyên Chúng ta đã biết khi ta sao chép dữ liệu giữa 2 máy hoặc thông qua mạng VPN để nâng cao chế độ bảo mật người q

HƯỚNG DẪN SỬ DỤNG PHẦN MỀM ebh NỘI DUNG I. Giới thiệu II. Hướng dẫn sử dụng phần mềm kê khai BHXH ebh Bắt đầu sử dụng chương trình...

Tài liệu Hướng dẫn sử dụng

Microsoft Word - jsp_file_uploading.docx

Bản ghi:

Danh sách liên kết đôi (Doubly Linked List) trong C Danh sách liên kết đôi (Doubly Linked List) là một biến thể của Danh sách liên kết (Linked List), trong đó hoạt động duyệt qua các nút có thể được thực hiện theo hai chiều: về trước và về sau một cách dễ dàng khi so sánh với Danh sách liên kết đơn. Dưới đây là một số khái niệm quan trọng cần ghi nhớ về Danh sách liên kết đôi. Chương trình minh họa Danh sách liên kết đôi (Doubly Linked List) trong C #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdbool.h> struct node { int data; int key; ; struct node *next; struct node *prev; //link nay luon luon tro toi first Link struct node *head = NULL; //link nay luon luon tro toi last Link struct node *last = NULL; struct node *current = NULL; //kiem tra xem list co trong khong bool isempty(){ return head == NULL; int length(){ int length = 0; struct node *current;

for(current = head; current!= NULL; current = current- >next){ length++; return length; //hien thi list bat dau tu first toi last void displayforward(){ //bat dau tu phan dau list struct node *ptr = head; //duyet toi cuoi list printf("\n[ "); while(ptr!= NULL){ printf("(%d,%d) ",ptr->key,ptr->data); ptr = ptr->next; printf(" ]"); //hien thi list bat dau tu last toi first void displaybackward(){ //bat dau tu cuoi list struct node *ptr = last; //duyet toi phan dau list printf("\n[ "); while(ptr!= NULL){ //in du lieu printf("(%d,%d) ",ptr->key,ptr->data); //di chuyen toi phan tu tiep theo ptr = ptr ->prev; printf(" "); printf(" ]");

//chen link tai vi tri dau tien void insertfirst(int key, int data){ //tao mot link struct node *link = (struct node*) malloc(sizeof(struct node)); link->key = key; link->data = data; if(isempty()){ //lam cho no thanh last link last = link; else { //cap nhat first prev link head->prev = link; //tro no toi first link cu link->next = head; //tro first toi first link moi head = link; //chen link tai vi tri cuoi cung void insertlast(int key, int data){ //tao mot link struct node *link = (struct node*) malloc(sizeof(struct node)); link->key = key; link->data = data; if(isempty()){ //lam cho no thanh last link last = link; else { //lam cho no thanh last link moi last->next = link; //danh dau last node la prev cua link moi link->prev = last;

//tro last toi last node moi last = link; //xoa phan tu dau tien struct node* deletefirst(){ //luu tham chieu toi first link struct node *templink = head; //neu chi co link if(head->next == NULL){ last = NULL; else { head->next->prev = NULL; head = head->next; //tra ve link da bi xoa return templink; //xoa link tai vi tri cuoi cung struct node* deletelast(){ //luu tham chieu toi last link struct node *templink = last; //neu chi co link if(head->next == NULL){ head = NULL; else { last->prev->next = NULL; last = last->prev; //tra ve link bi xoa return templink; //xoa mot link voi key da cho struct node* deletekey(int key){

//bat dau tu link dau tien struct node* current = head; struct node* previous = NULL; //neu list la trong if(head == NULL){ return NULL; //duyet qua list while(current->key!= key){ //neu no la last node if(current->next == NULL){ return NULL; else { //luu tham chieu toi link hien tai previous = current; //di chuyen next link current = current->next; //cap nhat link if(current == head) { //thay doi first de tro toi next link head = head->next; else { //bo qua link hien tai current->prev->next = current->next; if(current == last){ //thay doi last de tro toi prev link last = current->prev; else { current->next->prev = current->prev; return current; bool insertafter(int key, int newkey, int data){

//bat dau tu first link struct node *current = head; //neu list la trong if(head == NULL){ return false; //duyet qua list while(current->key!= key){ //neu day la last node if(current->next == NULL){ return false; else { //di chuyen next link current = current->next; //tao mot link struct node *newlink = (struct node*) malloc(sizeof(struct node)); newlink->key = key; newlink->data = data; if(current == last) { newlink->next = NULL; last = newlink; else { newlink->next = current->next; current->next->prev = newlink; newlink->prev = current; current->next = newlink; return true; main() { insertfirst(1,10); insertfirst(2,20); insertfirst(3,30); insertfirst(4,1);

insertfirst(5,40); insertfirst(6,56); printf("\nin danh sach (First ---> Last): "); printf("\n"); printf("\in danh sach (Last ---> first): "); displaybackward(); printf("\ndanh sach, sau khi xoa ban ghi dau tien: "); deletefirst(); printf("\ndanh sach, sau khi xoa ban ghi cuoi cung: "); deletelast(); printf("\ndanh sach, chen them phan tu sau key(4): "); insertafter(4,7, 13); printf("\ndanh sach, sau khi xoa key(4) : "); deletekey(4); Kết quả Biên dịch và chạy chương trình C trên sẽ cho kết quả: