Danh Sách Liên Kết Kép - Lập Trình 321

Lập Trình 321

Tổng Hợp Kiến Thức Lập Trình

SLIDE1

Thursday, April 30, 2015

Home » danh sach lien ket , giai thuat » danh sách liên kết kép

danh sách liên kết kép

Unknown 12:33 PM danh sach lien ket, giai thuat danh sách liên kết kép, định nghĩa struct và các hàm thành phần có trong danh sách kép Cấu Trúc Dữ Liệu Cấu trúc dữ liệu 1 nút typedef struct tagDnode { Data Info; struct tagDnode *pPre; struct tagDnode *pNext; }DNode; Cấu trúc List kép Typedef struct tagDList { DNode *pHead; DNode *pTail; }DList; void CreateDList(DList &l) { l.DHead=NULL; l.DTail=NULL; } Tạo 1 Nút Có Thành Phần Dữ Liệu = X DNode *CreateDNode(int x) { DNode *tam; tam=new DNode; if(tam==NULL) { printf("khong con du bo nho"); exit(1); } else { tam->Info=x; tam->pNext=NULL; tam->pPre=NULL; return tam; } } Cài Đặt Thêm 1 Nút Vào Đầu Danh Sách void AddFirst(DList &l, DNode *tam) { if(l.pHead==NULL)//xau rong { l.pHead=tam; l.pTail=l.pHead; } else { tam->pNext=l.pHead; l.pHead->pPre=tam; l.pHead=tam; } } Cài Đặt Thêm 1 Nút Vào Cuối Danh Sách void AddEnd(DList &l,DNode *tam) { if(l.pHead==NULL) { l.pHead=tam; l.pTail=l.pHead; } else { tam->pPre=l.pTail; l.pTail->pNext=tam; tam=l.pTail; } } Cài Đặt Thêm 1 Nút Vào Sau Nút Q void AddLastQ(DList &l,DNode *tam, DNode *q) { DNode *p; p=q->pNext; if(q!=NULL)//them vao duoc { tam->pNext=p; tam->pPre=q; q->pNext=tam; if(p!=NULL) p->pPre=tam; if(q==l.pTail) //them vao sau danh sach lien ket. l.pTail=tam; } else AddFirst(l,tam); } Cài Đặt Thêm 1 Nút Vào Trước Nút Q void AddBeforeQ(DList &l,DNode *tam,DNode *q) { DNode *p; p=q->pPre; if(q!=NULL) { tam->pNext=q; q->pPre=tam; tam->pPre=p; if(p!=NULL) p->pNext=tam; if(q==l.pHead) l.pHead = tam; } else AddEnd(l,tam); } Xoá Phần Tử Đầu Danh Sách void DeleteFirst(DList &l) { DNode *p; if(l.pHead!=NULL) { p=l.pHead; l.pHead=l.pHead->pNext; l.pHead->pPre=NULL; delete p; if(l.pHead==NULL) l.pTail=NULL; } } Xoá 1 Phần Tử Cuối Danh Sách void DeleteEnd(DList &l ) { DNode *p; if(l.pHead!=NULL) //tuc xau co hon mot phan tu { p=l.pTail; l.pTail=l.pTail->Pre; l.pTail->pNext=NULL; delete p; if(l.pTail==NULL) l.pHead=NULL; } } Hủy 1 Nút Sau Nút Q void DeleteLastQ(DList &l,DNode *q) { DNode *p;//luu node dung sau node q if(q!=NULL) { p=q->pNext; if(p!=NULL) { q->pNext=p->pNext; if(p==l.pTail)//xoa dung nu't cuoi l.pTail=q; else //Nut xoa khong phai nut cuoi p->pNext->pPre=q; delete p; } } else DeleteFirst(l); } Huỷ 1 Nút Đứng Trước Nút Q void DeleteBeforeQ(DList &l,DNode *q) { DNode *p; if(q!=NULL) //tuc ton tai node q { p=q->pPre; if(p!=NULL) { q->pPre=p->pPre; if(p==l.pHead)//p la Node dau cua danh sach l.pHead=q; else //p khong phai la node dau p->pPre->pNext=q; delete p; } } else DeleteEnd(l); } Xoá 1 Phần Tử Có Khoá = X int DeleteX(DList &l,int x) { DNode *p; DNode *q; q=NULL; p=l.pHead; while(p!=NULL) { if(p->Info==x) break; q=p;//q la Node co truong Info = x p=p->pNext; } if(q==NULL) return 0;//khong tim thay Node nao co truong Info =x if(q!=NULL) DeleteLastQ(l,q); else DeleteFirst(l); return 1; } Sắp Xếp void DoiChoTrucTiep(DList &l) { DNode *p,*q; p=l.pHead; while(p!=l.pTail) { q=p->pNext; while(q!=NULL) { if(p->Info>q->Info) HV(p,q); q=q->pNext; } p=p->pNext; }} ← Newer Post Older Post → Home

Find us on facebook

Trần Khánh Toànemail: [email protected]://www.laptrinh321.net FaceBook Google Plus
  • Popular
  • Tags
  • Blog Archives
  • hệ đếm nhị phân, thập phân và thập lục phân 1. hệ đếm nhị phân: dùng 2 kí số cơ bản là 0 và 1 đổi hệ 10 sang hệ 2 thì chia liên tiếp cho 2 đến khi bằng 0, số dư được viết theo c...
  • các hệ thống số cơ bản, nhị phân, bát phân, thập lục phân, thập phân các hệ thống số cơ bản thập phân: gồm các chữ số 0,1,2,3,4,5,6,7,8,9 ví dụ: 576.348 = 5*10^2 + 7*10^1 + 6*10^0 + 3*10^-1 + 4*10^-2 ...
  • lập trình tìm các bộ số pitago | lập trình c/c++ lập trình tìm các bộ số pitago | lập trình c/c++.   Một tam giác vuông có thể có tất cả các cạnh là các số nguyên. Tập của ba số nguyên của...
  • [C/C++] nhập vào họ và tên, in ra tên viết chương trình [C/C++] nhập vào họ và tên , sau đó xử lý chuỗi và in ra tên của người đó. #include<stdio.h> #include<string.h...
  • viết chương trình c chuyển đổi hệ đếm nhị phân, bát phân, thập lục phân viết chương trình c chuyển đổi hệ đếm nhị phân, bát phân, thập lục phân .  DEC,BIN,HEX,OCT.   Viết chương trình in bảng của các số từ 1 đế...
  • cách XĐ tín hiệu điều khiển từ khối "Control" - Datapath (KTMT) ** Tổng quan các lệnh cần xem xét: (8 lệnh trong 3 nhóm chính của tập lệnh MIPS)   §  Nhóm lệnh tham khảo bộ nhớ (lw và sw): Nạp...
  • [OOP C++] quản lý nhân viên và tính lương cho từng nhân viên bài tập OOP C++. Giả sử Công ty có hai loại nhân viên: Nhân viên văn phòng và Nhân viên sản xuất. Viết chương trình quản lý và tính lương ch...
  • OOP C++ cộng trừ nhân chia số phức Làm lại bài số phức với một phương thức thiết lập duy nhất cho phép quan điểm một số thực như một số phức đặc biệt (phần ảo bằng 0). Định ng...
  • 5. Viết chương trình nhập họ tên, điểm toán, điểm văn của một học sinh. Tính điểm trung bình và xuất kết quả. 5. Viết chương trình nhập họ tên, điểm toán, điểm văn của một học sinh. Tính điểm trung bình và xuất kết quả. #include<iostream> us...
  • xung đột? pipelined và kỹ thuật forwarding, non-forwarding  Pipeline là một kỹ thuật mà trong đó các lệnh được thực thi theo kiểu chồng lắp lên nhau. - Cách tiếp cận dùng kỹ thuật pipeline tiêu tố...

Labels

  • bai tap c
  • bai tap oop
  • cau truc cay
  • danh sach lien ket
  • giai thuat
  • giao trinh hoc c
  • giao trinh oop
  • html
  • kien truc may tinh
  • lap trinh c
  • lap trinh web
  • linh tinh
  • linux
  • mang may tinh
  • may tinh
  • PHP
  • sap xep
  • SQL
  • tim kiem

Blog Archive

  • ▼  2015 (173)
    • ▼  April (25)
      • code c++ phần mềm split and join file part,001,002
      • danh sách liên kết kép
      • danh sách liên kết đơn
      • sắp xếp trộn run sắp xếp ngoại
      • thư viện vector STL C++
      • cơ bản thư viện vector STL C++
      • cơ bản về thư viện string - STL C++
      • tính giá trị biểu thức toán học bất kỳ, giống máy ...
      • tạo lập đối tượng trong c++
      • lớp class trong lập trình c++
      • [C++] điều khiển robot trong bản đồ Oxy U-D-L-R-T-B
      • Viết định nghĩa lớp TamGiac ,quay, tịnh tiến, phón...
      • Tra Cứu điểm chuẩn đại học cao đẳng 2015
      • thuật toán sắp xếp radix sort
      • thuật toán merge sort - sắp xếp trộn
      • thuật toán quick sort - sắp xếp nhanh
      • thuật toán heap sort - sắp xếp vun đống, (cây)
      • thuật toán shell sort - cải tiến của chèn trực tiếp
      • thuật toán binary insertion sort - chèn nhị phân
      • thuật toán insertion sort - chèn trực tiếp
      • [đệ quy c/c++] kiểm tra các phần tử của mảng
      • [đệ quy c/c++] đếm số phần tử phân biệt trong mảng
      • [đệ quy c/c++] tìm UCLN tất cả các phần tử trong mảng
      • [Đệ Quy C++] viết hàm xuất các số nguyên tố có tro...
      • [Đệ Quy C/C++] tìm min và max các phần tử của mảng.

Categories

  • bai tap c
  • bai tap oop
  • cau truc cay
  • danh sach lien ket
  • giai thuat
  • giao trinh hoc c
  • giao trinh oop
  • html
  • kien truc may tinh
  • lap trinh c
  • lap trinh web
  • linh tinh
  • linux
  • mang may tinh
  • may tinh
  • PHP
  • sap xep
  • SQL
  • tim kiem

BTemplates.com

Đồng Hồ Gỗ, Tượng Gỗ Di Lặc, Phúc Lộc Thọ Dịch Vụ Kế Toán Tại Nhà Kế Toán  
  • Labels

    • bai tap c
    • bai tap oop
    • cau truc cay
    • danh sach lien ket
    • giai thuat
    • giao trinh hoc c
    • giao trinh oop
    • html
    • kien truc may tinh
    • lap trinh c
    • lap trinh web
    • linh tinh
    • linux
    • mang may tinh
    • may tinh
    • PHP
    • sap xep
    • SQL
    • tim kiem
  • Blogroll

    lap trinh 321
  • About

Copyright © Lập Trình 321 | Powered by Blogger Design by FThemes | Blogger Theme by Lasantha - Premium Blogger Templates | NewBloggerThemes.com

Từ khóa » Nhập Xuất Danh Sách Liên Kết Kép