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

Đề tài: Sắp xếp mảng | Sắp xếp tăng dần?

  1. #1
    Ngày gia nhập
    11 2008
    Bài viết
    6

    Cool Sắp xếp mảng | Sắp xếp tăng dần?

    em chỉ mới viết được nhập vào 1 dãy thôi.mấy anh chỉ em hàm xếp tăng của dãy nhập vào để chạy bài này chút.cảm ơn mấy anh nhiều
    đây là bài em viết
    Code:
    #include<stdio.h>
    #include"iostream.h"
    typedef struct node
    {
         int infor;
    
         struct node* pnext;
    }node;
    typedef struct list
    {
         node* phead;
         node* ptail;
    }list;
    node *creatnode(int n)
    {
         node*p=new node;
    
         if(p==NULL)
                 cout<<"cap phat khong thanh cong";
         else
         {
                 p->infor=n;
                 p->pnext=NULL;
         }
         return p;
    }
    void ktlist(list &l)
    {
         l.ptail=NULL;
    
         l.phead=NULL;
    }
    void addhead(list &l,node* p)
    {
         if(l.phead==NULL)
         {
                 l.phead=p;
                 l.ptail=l.phead;
         }
         else
         {
                 p->pnext=l.phead;
                 l.phead=p;
    
         }
    }
    void addtail(list &l,node *p)
    {
         if(l.phead==NULL)
         {
                 l.phead=p;
                 l.ptail=p;
         }
         else
         {
                 l.ptail->pnext=p;
                 l.ptail=p;
    
         }
    }
    void taolist(list &l)
    {
         int x;
    
         node *p;
    
         int n;
    
         ktlist(l);
    
         cout<<"nhap vao chieu dai cho list:";
    
         cin>>n;
    
         for(int i=0;i<n;i++)
         {
                 cout<<"nhap gia tri cho phan tu thu:"<<i+1<<"   ";
    
    
                 cin>>x;
    
                 p=creatnode(x);
    
                 addhead(l,p);//chen dau
    
                 //addtail(l,p);// chen cuoi
         }
    }
    void xuatlist(list l)
    {
         node *p;
         int tong=0;
    
         p=l.phead;
    
         while(p!=NULL)
         {
                 cout<<p->infor;
    
                 tong++;
    
                 p=p->pnext;
         }
    
         cout<<"\ntong cac nut trong danh sach la:"<<tong;
    }
    
    void main()
    {
         list l;
    
         taolist(l);
    
         xuatlist(l);
    }
    Đã được chỉnh sửa lần cuối bởi thienhoaaloha : 01-05-2009 lúc 10:09 PM.

  2. #2
    Ngày gia nhập
    05 2009
    Bài viết
    1

    PHP Code:
    void SapTang( list & l)
    {
        for(
    node*l.phead p->pnext p=p->pnext)
             for(
    node*p->pnextq=q->pnext)
                  if (
    p->infor q->infor)
                     
    HoanVi(p->inforq->infor);     

    Đã được chỉnh sửa lần cuối bởi modern_boy : 01-05-2009 lúc 10:39 PM.

  3. #3
    Ngày gia nhập
    11 2008
    Bài viết
    6

    Trích dẫn Nguyên bản được gửi bởi modern_boy Xem bài viết
    PHP Code:
    void SapTang( list & l)
    {
        for(
    node*l.phead p->pnext p=p->pnext)
             for(
    node*p->pnextq=q->pnext)
                  if (
    p->infor q->infor)
                     
    HoanVi(p->inforq->infor);     

    thanks modern_boy nhiều nhiều.
    em viết hàm tìm giá trị nhỏ nhất sau mà bị lỗi convert không biết sửa thế nào.mới học phần này nên mơ hồ quá.chỉ em với
    Code:
    void findmin(list &l)
    {
    	node min=l.phead;
    	for(node *p=l.phead;p->pnext;p=p->pnext)
    	{
    		if(p->infor < min)
    			min=p->infor;
    	}
    	cout<<"min la:"<<min;
    }
    Đã được chỉnh sửa lần cuối bởi thienhoaaloha : 02-05-2009 lúc 10:25 AM.

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

    min là một node mà lại cout min
    PHP Code:
    void findmin(const list &l)
    {
        
    int min=l.phead->infor;//min kiểu int
        
    for(node *l.phead->pnext!= NULLp->pnext)
        {
            if(
    p->infor min)
                
    min=p->infor;
        }
        
    cout << "min la: " << min;


  5. #5
    Ngày gia nhập
    11 2008
    Bài viết
    6

    cảm ơn rua_con.đã hiểu vấn đề.thêm một vấn đề nữa cần giúp.đây là code xóa node có khóa x nhưng sao nó chỉ xóa có 1 lần.mình cần xóa tất cả những node có khóa x.thanks
    Code:
    int RemoveNode(list &l,int x)
    {
    	node *p=l.phead;
    	node *q=NULL;
    	while(p!=NULL)
    	{
    		if(p->infor==x)
    			break;
    		q=p;
    		p=p->pnext;
    	}
    	if(p==NULL)
    		return 0;// khong tim thay x
    	for(node *p=l.phead;p!=NULL;p=p->pnext)
    	{
    		if(q!=NULL)
    		{
    			if(p==l.ptail)
    				l.ptail=q;
    			q->pnext=p->pnext;
    			delete p;
    		}
    		else// p la phan tu dau xau
    		{
    			l.phead=p->pnext;
    			if(l.phead==NULL)
    			{
    				l.ptail=NULL;
    			}
    			return 1;
    		}
    	}
    	
    }
    Đã được chỉnh sửa lần cuối bởi thienhoaaloha : 02-05-2009 lúc 10:47 PM.

  6. #6
    Ngày gia nhập
    10 2008
    Bài viết
    178

    Mặc định Sắp xếp mảng | Sắp xếp tăng dần?

    PHP Code:
    else// p la phan tu dau xau
            
    {
                
    l.phead=p->pnext;
                if(
    l.phead==NULL)
                {
                    
    l.ptail=NULL;
                }
                return 
    1;//cho nay cau return roi con dau
            

    đưa return 1 ra ngoai for
    câu có thể tham khảo thêm code mình viết
    PHP Code:
    int RemoveNODE(list &l,int x)
    {
        if(
    l.phead->infor == x)
        {
            
    l.pheadl.phead->pnext;
            if(
    l.phead->infor == x)
            {
                
    RemoveNODE(lx);
            }
        }
        
    node l.phead;
        
    node *l.phead->pnext;
        while(
    p)
        {
            if(
    p->infor == x)
            {
                
    q->pnext p->pnext;
                
    p->pnext;
            }
            else
            {
                
    p=p->pnext;
                
    q=q->pnext;
            }
        }
        return 
    1;

    Đã được chỉnh sửa lần cuối bởi rua_con : 03-05-2009 lúc 12:38 AM.

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

    Code:
    node *creatnode(int n)
    
    void taolist(list &l)
    
    void xuatlist(list l)
    [/QUOTE]
    3 chỗ này em không hiểu.mấy anh giải thích cho em chút
    hàm 1 sao phải để ở dạng *
    hàm 2 sao phải cần toán tử & , trong khi hàm 3 thì không cần
    cảm ơn mấy anh

  8. #8
    Ngày gia nhập
    10 2008
    Bài viết
    178

    Trích dẫn Nguyên bản được gửi bởi peng Xem bài viết
    Code:
    node *creatnode(int n)
    
    void taolist(list &l)
    
    void xuatlist(list l)
    3 chỗ này em không hiểu.mấy anh giải thích cho em chút
    hàm 1 sao phải để ở dạng *
    hàm 2 sao phải cần toán tử & , trong khi hàm 3 thì không cần
    cảm ơn mấy anh[/QUOTE]
    1
    PHP Code:
    node *creatnode(int n)
    {
         
    node*p=new node;

         if(
    p==NULL)
                 
    cout<<"cap phat khong thanh cong";
         else
         {
                 
    p->infor=n;
                 
    p->pnext=NULL;
         }
         return 
    p;//p là con trỏ nên kiểu trả về là con trỏ

    2
    PHP Code:
    void taolist(list &l
    cái ta muốn làm ở đây là thêm vào tứclaf thay đổi số phần tử trong list l
    nếu không truyền tham chiếu thì moi thao tác thêm một node mới sẽ không có tác dụng.vì khi không có tham chiếu nó sẽ tạo ra một bản sao của 'l' mọi thao tác thêm sẽ thực hiện trên bản sao này,nên 'l' sẽ không thay đổi j hết
    [/PHP]
    3
    PHP Code:
    void xuatlist(list l); 
    chỉ xuất các node trong list l,không cần làm thay đổi list l nên không cần &
    viết vậy cũng chưa tôt nên viết là
    PHP Code:
    void xuatlist(const list &l); 
    vì thực tế không muốn bất cứ thay đổi nào trong wa trình xuất dữ liệu

  9. #9
    Ngày gia nhập
    05 2009
    Bài viết
    4

    cảm ơn anh rua_con.em đã hiểu rồi.
    Đã được chỉnh sửa lần cuối bởi peng : 13-05-2009 lúc 11:14 PM.

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

  1. Dịch vụ tăng like facebook và tăng vote google +1
    Gửi bởi raovatgirevn trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 07-05-2012, 11:26 AM
  2. Thuật toán chuyển dãy tăng giảm thành dãy tăng?
    Gửi bởi anhtran trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 5
    Bài viết cuối: 12-03-2012, 07:40 AM
  3. 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....
    Gửi bởi nobita_1992 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 20-11-2011, 09:03 PM
  4. sắp xếp mảng số nguyên chẵn tăng dần, lẻ tăng dần, không dùng mảng tạm
    Gửi bởi hailoc12 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 09-08-2006, 11:44 AM

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