Announcement

Collapse
No announcement yet.

Ai giải giúp em bài xuất cây theo thứ tự left-node-right ko dùng đệ quy!!!!!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Ansi C] Ai giải giúp em bài xuất cây theo thứ tự left-node-right ko dùng đệ quy!!!!!

    định nghĩa cây như sau
    typedef struct tagtnode
    {
    int info;
    struct tagtnode *left,*right;
    }tnode;
    typedef tnode* tree;
    tree t;

    VD NLR cái này em đã làm đc

    void outputNLR2(tree t)
    {
    tnode *stack[50],*p=t;
    int numofele=0,conti=1;
    while(p&&conti)
    {
    printf("%d ",p->info);
    if(p->right)stack[numofele++]=p->right;
    if(p->left)p=p->left;
    else
    {
    if(numofele!=0)p=stack[--numofele];
    else conti=0;
    }
    }


    còn LNR ko dùng đệ quy thì em bó tai.có pro nào giúp em giải bài này với(dùng code C giống bài trên,ko dùng C++ hay ngôn ngữ khác).
    Last edited by 11520056; 16-05-2012, 19:00.
    visit me at solitarywolf-it.blogspot.com

  • #2
    Hjx search hoài ko thấy có lun
    visit me at solitarywolf-it.blogspot.com

    Comment


    • #3
      Originally posted by 11520056 View Post
      Hjx search hoài ko thấy có lun
      Cho mình bon chen tí, bạn search thử cách dùng stack khử đệ quy đuôi rồi áp dụng vào thuật toán này là được ... Chỉ cần dùng 1 vòng while là ok
      Một khẩu súng giữ hai trời Nam Bắc,
      Một dấu chân in màu đất hai miền.

      ------------------------------------------------------

      Comment


      • #4
        Originally posted by 11520056 View Post
        định nghĩa cây như sau
        Code:
        typedef struct tagtnode
        {
        	int info;
        	struct tagtnode *left,*right;
        }tnode;
        typedef tnode* tree;
        tree t;
        
        VD NLR cái này em đã làm đc 
        void outputNLR2(tree t)
        {
        	tnode *stack[50],*p=t;  
        	int numofele=0,conti=1;				
        	while(p&&conti)
        	{
        		printf("%d ",p->info);
        		if(p->right)stack[numofele++]=p->right;
        		if(p->left)p=p->left;
        		else
        		{
        			if(numofele!=0)p=stack[--numofele];
        			else conti=0;
        		}
        	}
        }
        còn LNR ko dùng đệ quy thì em bó tai.có pro nào giúp em giải bài này với(dùng code C giống bài trên,ko dùng C++ hay ngôn ngữ khác).
        Em để code vào tag [code] nhá.

        Để duyệt giữa em phải có thêm một biến lưu node hiện tại đang được xử lý. Vận dụng biến này thế nào là tùy sự khéo léo. Em có thể tìm bằng từ khóa In-order tree traversal non rescursive. Tập tìm kiếm bằng cả tiếng Anh và tiếng Việt đi.

        Comment


        • #5
          Originally posted by truonganpn View Post
          Em để code vào tag [code] nhá.

          Để duyệt giữa em phải có thêm một biến lưu node hiện tại đang được xử lý. Vận dụng biến này thế nào là tùy sự khéo léo. Em có thể tìm bằng từ khóa In-order tree traversal non rescursive. Tập tìm kiếm bằng cả tiếng Anh và tiếng Việt đi.
          em lưu biến của N vào stack luôn..nhưng lấy ra thì không được.???
          not..

          Comment


          • #6
            Originally posted by 11520338 View Post
            em lưu biến của N vào stack luôn..nhưng lấy ra thì không được.???
            Em đã thử tham khảo các kết quả trả về của google khi dùng từ khóa "In order tree walk non recursive" chưa?

            Comment


            • #7
              em ko tìm thấy code nhưng đọc đc 12 chữ..nhờ đó mà giải đc bài này.dù sao cũng thank mọi người^^
              visit me at solitarywolf-it.blogspot.com

              Comment


              • #8
                Originally posted by 11520056 View Post
                em ko tìm thấy code nhưng đọc đc 12 chữ..nhờ đó mà giải đc bài này.dù sao cũng thank mọi người^^
                Share cho các bạn khác tham khảo đi em, ai lại chơi một cái dấu "^^" xong rồi giấu một mình vậy

                Comment


                • #9
                  Àh sẵn tiện cho em hỏi cái này nha mọi ng`.em ko hiểu tại sao mà cây cân bằng AVL :cây T bị lệch trái,nhưng cây T1(con trái của T) ko bị lệch trái sau khi thêm node thì cây T vẫn cân bằng chứ.vậy sao ng` ta vẫn way left-left làm gì????
                  visit me at solitarywolf-it.blogspot.com

                  Comment

                  LHQC

                  Collapse
                  Working...
                  X