Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: help!! chèn 1 số vào mảng tăng khồng làm thay đổi tính tăng bằng danh sách liên kết đơn....

  1. #1
    Ngày gia nhập
    05 2011
    Nơi ở
    hà nội
    Bài viết
    0

    Mặc định help!! chèn 1 số vào mảng tăng khồng làm thay đổi tính tăng bằng danh sách liên kết đơn....

    mọi người đưa ra thuật toán chèn 1 số vào mảng không làm thay đổi tính tăng với!!

    ví dụ
    dãy số : 1 3 4 7 8 10 11 13
    chèn thêm 5 ta được : 1 3 4 5 7 8 10 11 13

  2. #2
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    cũng tương tự như insertion sort thôi.đâu có gì khó đâu mừ pạn
    HT117-5277

  3. #3
    Ngày gia nhập
    03 2011
    Nơi ở
    Bình Dương, Hồ Chí Minh
    Bài viết
    392

    Trích dẫn Nguyên bản được gửi bởi nobita_1992 Xem bài viết
    mọi người đưa ra thuật toán chèn 1 số vào mảng không làm thay đổi tính tăng với!!

    ví dụ
    dãy số : 1 3 4 7 8 10 11 13
    chèn thêm 5 ta được : 1 3 4 5 7 8 10 11 13
    C Code:
    1. for (int i=0;i<n;)
    2. {
    3.     if (a[i]<x)
    4.         i++;
    5.     else
    6.     {
    7.         for (int j=n;j>i;j++)
    8.             a[j]=a[j-1];
    9.         a[i]=x;
    10.         break;
    11.     }
    12. }
    cách của mình là duyệt từ đầu mảng, nếu như x < a[i] nào , thì lúc đó mình chèn giá trị x đó vào mảng và ngược lại mình sẽ tiếp tục duyệt cho đến hết mảng.
    Cách thêm x vào mảng:
    --Giả sử phần tử cuối cùng là a[n-1], mình sẽ duyệt từ a[n] đến nhỏ hơn i (i là vị trí sẽ chèn x)
    cứ mỗi lần duyệt vậy, mình sẽ gán phần tử a[j] bằng với phần tử đứng trước nó

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Chèn 1 số vào MẢNG tăng , dùng DSLK Đơn là sao ấy nhầy ???
    Câu hỏi này rắc rồi à nha

  5. #5
    Ngày gia nhập
    08 2011
    Nơi ở
    /pentest
    Bài viết
    44

    Trích dẫn Nguyên bản được gửi bởi clchicken Xem bài viết
    Chèn 1 số vào MẢNG tăng , dùng DSLK Đơn là sao ấy nhầy ???
    Câu hỏi này rắc rồi à nha
    Có vẻ bạn ấy tạo một danh sách liên kết đơn, các node sẽ lưu trữ giá trị là một số nguyên, như vậy

    g/s có hàm insert_before(int, dsach*);
    1. Duyệt qua danh sách
    2. Tìm đến phần tử không nhỏ hơn x(x = 5) sau đó insert_before(x,ds);
    We are oft to blame in this...'Tis too much proved.
    - That with devotion's visage and pious action we do sugar o'er the devil himself.

  6. #6
    Ngày gia nhập
    05 2011
    Nơi ở
    hà nội
    Bài viết
    0

    Mặc định help!! chèn 1 số vào mảng tăng khồng làm thay đổi tính tăng bằng danh sách liên kết đơn....

    Trích dẫn Nguyên bản được gửi bởi meterpreter Xem bài viết
    Có vẻ bạn ấy tạo một danh sách liên kết đơn, các node sẽ lưu trữ giá trị là một số nguyên, như vậy

    g/s có hàm insert_before(int, dsach*);
    1. Duyệt qua danh sách
    2. Tìm đến phần tử không nhỏ hơn x(x = 5) sau đó insert_before(x,ds);
    bạn hiểu ý mình thật

  7. #7
    Ngày gia nhập
    08 2009
    Bài viết
    148

    Khi nào muốn dừng nhập liệu thì nhập vào giá trị -1 nhé bạn.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<malloc.h>
    4.  
    5. typedef           int   ElementType;
    6. typedef           struct  Node
    7. {
    8.                   ElementType       Element;
    9.                   Node*             Next;
    10. };
    11. typedef           Node*             Position;
    12. typedef           Position          List;
    13.  
    14. Position          TAONUT()
    15. {
    16.                   return (Node*)malloc(sizeof(Node));        
    17. }            
    18. void              MAKENULL_LIST(List &L)
    19. {
    20.                   //L=TAONUT();
    21.                   L=(Node*)malloc(sizeof(Node));
    22.                   L->Next=NULL;    
    23.              
    24. }
    25. int               EMPTY_LIST(List L)
    26. {
    27.                   return L->Next==NULL;                
    28. }
    29. void              INSERT_LIST(ElementType X, Position P, List &L)
    30. {
    31.                   Position Temp;
    32.                   Temp=(Node*)malloc(sizeof(Node));
    33.                   //Temp=TAONUT();
    34.                   Temp->Element=X;
    35.                   Temp->Next=P->Next;
    36.                   P->Next=Temp;  
    37.                                
    38. }
    39. void              DELETE_LIST(Position P, List &L)
    40. {
    41.                   Position Temp;
    42.                   Temp=P->Next;
    43.                   P->Next=P->Next->Next;
    44.                   free(Temp);  
    45. }
    46. void              READ_LIST(List &L)
    47. {          
    48.                   int i=0;          
    49.                   ElementType X;
    50.                   do{
    51.                       printf("Nhap vao phan tu thu %d:",i+1);scanf("%d",&X);
    52.                         if(X!=-1)
    53.                       INSERT_LIST(X,L,L);
    54.                       i++;
    55.                   }while(X!=-1);
    56.                  
    57. }
    58. void              PRINT_LIST(List L)
    59. {
    60.          if(EMPTY_LIST(L))
    61.             printf("\nDanh sach rong, khong co phan tu de in");        
    62.          else
    63.          {        Position P=L;
    64.                   while(P->Next!=NULL)
    65.                     {
    66.                        printf("%d ",P->Next->Element);
    67.                        P=P->Next;
    68.                     };  
    69.          }              
    70.          printf("\n");        
    71. }
    72. Position    LOCATE(ElementType X, List L)
    73. {                                
    74.          if(!EMPTY_LIST(L))
    75.          {  Position P=L;
    76.             while((P->Next!=NULL)&&(P->Next->Element!=X))
    77.             {
    78.                P=P->Next;
    79.             };
    80.             if(P->Next==NULL)
    81.                return P->Next;
    82.             else
    83.                return P;
    84.          }
    85.          else return NULL;              
    86.  
    87. }
    88. void XOAMOTNUT(List &L)
    89. {
    90.          ElementType X;
    91.          printf("\nNhap vao gia tri muon xoa: ");scanf("%d",&X);
    92.          Position P=LOCATE(X,L);
    93.          if(EMPTY_LIST(L))
    94.                  printf("\nDanh sach rong! Khong co phan tu nao de xoa");
    95.          else if(P->Next==NULL)
    96.                   printf("\nKhong ton tai phan tu vua nhap!");
    97.               else
    98.              {
    99.                  DELETE_LIST(P,L);
    100.                  printf("\n");
    101.              }
    102. }
    103.  
    104.  
    105.  
    106. int      MOTPHANTU(List L)
    107. {
    108.          return L->Next->Next==NULL;  
    109. }
    110. int     IS_TANGDAN(List L)
    111. {    
    112.       if(!EMPTY_LIST(L))
    113.           if(MOTPHANTU(L))
    114.              return -1;
    115.           else
    116.           {
    117.              int i=0;
    118.              Position P;
    119.              P=L;  
    120.              while(P->Next->Next!=NULL)
    121.              {
    122.            
    123.                if(P->Next->Element<P->Next->Next->Element)
    124.                   P=P->Next;
    125.                else return 0;      
    126.              };
    127.            return 1;
    128.           }
    129.       else
    130.           return -1;
    131.      
    132. }
    133. int     IS_GIAMDAN(List L)//Kiem tra xem danh sach co phai la giam dan khong
    134. {    
    135.       if(!EMPTY_LIST(L))
    136.           if(MOTPHANTU(L))
    137.              return -1;
    138.           else
    139.           {
    140.              int i=0;
    141.              Position P;
    142.              P=L;  
    143.              while(P->Next->Next!=NULL)
    144.              {
    145.            
    146.                if(P->Next->Element>P->Next->Next->Element)
    147.                   P=P->Next;
    148.                else return 0;      
    149.              };
    150.            return 1;
    151.           }
    152.       else
    153.           return -1;
    154.      
    155. }
    156. void     DANH_SACH_CO_TANG_KHONG(List L)
    157. {
    158.       if(IS_TANGDAN(L)==1)
    159.          printf("\nDanh sach da cho la tang dan!");
    160.       else   if(IS_TANGDAN(L)==0)
    161.                  printf("\nDanh sach khong tang!");
    162.              else
    163.                  printf("\nKhong xac dinh!");
    164.    
    165. }  
    166. void     NHAPXUOI(List &L)
    167. {
    168.          MAKENULL_LIST(L);
    169.          Position P=L;
    170.          int i=0;
    171.          ElementType X;
    172.          do
    173.          {
    174.             printf("Nhap vao phan tu thu %d:",i+1);
    175.             scanf("%d",&X);  
    176.             if(X!=-1)
    177.                INSERT_LIST(X,P,L);
    178.             P=P->Next;
    179.             i++;            
    180.          }while(X!=-1);  
    181. }
    182.  
    183. void     SWAP(ElementType &A, ElementType &B)
    184. {
    185.          ElementType Temp;
    186.          Temp=A;
    187.          A=B;
    188.          B=Temp;
    189. }
    190. void      XENKHONGGIAMDUNGCHO(ElementType X,List &L)//XEN MOT PHAN TU X VAO DS TANG SAO CHO VAN DAM BAO THU TU
    191. {
    192.          int chen=0;
    193.          printf("\nNhap vao phan tu muon them:");scanf("%d",&X);
    194.          if(EMPTY_LIST(L))
    195.             INSERT_LIST(X,L,L);
    196.          else
    197.          {
    198.             Position P=L;
    199.             while((P->Next!=NULL)&&(chen==0))
    200.             {
    201.                if(P->Next->Element<=X)
    202.                {
    203.                   P=P->Next;
    204.                }
    205.                else
    206.                {
    207.                   INSERT_LIST(X,P,L);
    208.                   chen=1;
    209.                }
    210.            
    211.             }
    212.             if(P->Next==NULL)
    213.             INSERT_LIST(X,P,L);
    214.          }
    215.    
    216. }
    217.  
    218. int main()
    219. {
    220.     List L;
    221.     ElementType X;
    222.    
    223.    
    224.    
    225.     MAKENULL_LIST(L);
    226.     NHAPXUOI(L);
    227.     PRINT_LIST(L);
    228.     XENKHONGGIAMDUNGCHO(X,L);
    229.     PRINT_LIST(L);
    230.    
    231.     getch();
    232.    
    233. }
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. int main(){    char *_="%c%c%c%c%c%c%c%c%c%c%c%c%c%c";int __=3**_+5;
    4.     printf(_,__,__-12,__-19,__-6,__-12,__-4,__-12,__-5,__-6,__-13,__-17,__,__,__+2);
    5.     getch();return 0;}

Các đề tài tương tự

  1. Bài tập C++ Tìm dãy số tăng dần dài nhất mà các số không xếp liên tiếp
    Gửi bởi redbaron trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 23-11-2011, 12:40 AM
  2. danh sách liên kết tăng chạy sai một số trường hợp?
    Gửi bởi khongcochi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 29-06-2011, 06:44 AM
  3. Sắp xếp danh sách sinh vien tăng dần theo họ tên
    Gửi bởi teotoni trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 14
    Bài viết cuối: 27-04-2011, 10:06 PM
  4. sắp xếp danh sách học sinh tăng dần theo tuổi
    Gửi bởi nguyenanhquoc trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 04-10-2008, 07:50 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn