Advertisement
llvlleo1810

chèn/xóa vào đầu hoặc cuối / bất kỳ trong danh sách

Apr 17th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.79 KB | None | 0 0
  1. //A -> B -> C -> D
  2. //[0] -> [1] -> [2] -> [3]
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. //2 1
  8. struct Node{
  9.  int data;
  10.  Node *next;
  11. };
  12.  
  13. Node * dau;
  14. Node * cuoi;
  15.  
  16. //chen vao cuoi danh sach lien ket
  17. void insertCuoi(Node * node){
  18.  cuoi -> next = node;
  19.  cuoi = node;
  20. }
  21.  
  22. void inputChenVaoCuoi(){
  23.  //1-10
  24.  dau = new Node();
  25.  dau->data = 1;
  26.  dau->next = NULL;
  27.  cuoi = dau;
  28.  
  29.  
  30.  for(int i = 2; i <= 10; i++){
  31.   Node *b = new Node();
  32.   b->data = i;
  33.   b->next = NULL;
  34.   insertCuoi(b);
  35.  }
  36. }
  37.  
  38. void insertDau(Node * node){
  39.  //2 -> 1
  40.  // a = b;
  41.  node -> next = dau;
  42.  dau = node;
  43. }
  44.  
  45. void inputChenVaoDau(){
  46.  //1-10
  47.  dau = new Node();
  48.  dau->data = 1;
  49.  dau->next = NULL;
  50.  cuoi = dau;
  51.  
  52.  
  53.  for(int i = 2; i <= 10; i++){
  54.   Node *b = new Node();
  55.   b->data = i;
  56.   b->next = NULL;
  57.   insertDau(b);
  58.  }
  59. }
  60.  
  61.  
  62. // 1 -> 2 -> 4 -> 5
  63. // 3
  64. //1 -> 2 -> 3 -> 4 ->5
  65.  
  66. void insertBatKy(int x, Node * node){
  67.  int index = 1;
  68.  Node * p = dau;
  69.  while(p != NULL){
  70.   if(index == x){
  71.    //vi tri can chen
  72.    Node * tmp = p->next;
  73.    p -> next = node;
  74.    node -> next = tmp;
  75.    break;
  76.   }
  77.   p = p -> next;
  78.   index++;
  79.  }
  80. }
  81.  
  82. void xoadau(){
  83.  Node *p = dau;
  84.  dau  = dau -> next;
  85.  p = NULL;
  86. }
  87. //1 -> 2 -> 3
  88. void xoacuoi(){
  89.  for(Node *i = dau; i != cuoi; i = i -> next){
  90.   if( i -> next == cuoi){
  91.    cuoi = i;
  92.    i -> next = NULL;
  93.    break;
  94.   }
  95.  }
  96. }
  97.  
  98. // 2-> 3-> 5-> 7
  99.  
  100. xoabatky(int x){
  101.  int index = 1;
  102.  for(Node *i = dau; i != cuoi; i = i -> next){
  103.   if(index == x){
  104.    i -> next = i -> next -> next;
  105.    break;
  106.   }
  107.   index++;
  108.  }
  109. }
  110.  
  111. void print(){
  112.  Node * p = dau;
  113.  cout << endl;
  114.  while(p != NULL){
  115.   cout << p -> data << " ";
  116.   p = p -> next;
  117.  }
  118. }
  119.  
  120. int main(){
  121.  insertBatKy(3, p);
  122.  print();
  123. // xoadau();
  124. // xoacuoi();
  125.  xoabatky(2);
  126.  print();
  127.  return 0;
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement