وبلاگ دانشجویان مهندسی فناوری اطلاعات دانشگاه اصفهان

وبلاگ دانشجویان it ورودی 90 دانشگاه اصفهان

وبلاگ دانشجویان مهندسی فناوری اطلاعات دانشگاه اصفهان

وبلاگ دانشجویان it ورودی 90 دانشگاه اصفهان

(تصحیح شده!!!)nodeType

سلام

این پست خلاصه چیزاییه که درمورد لیست های پیوندی پیدا کردم.اگه جاییش اشکال داره و اگه شما هم چیز به درد بخوری پیدا کردین بگین...

(دیگه استاد خودشون گفتن گروهی کار کنین!)



1-برای کار با nodeTypeها اول از همه باید اونها رو تعریف کنیم(این نکته ایه که مطمئنم هیچ کس نمیدونست!)

مثلا:

struct nodeT

 

{

    int data;               //مقداری که قراره نگه داره مثلا کدپرسنلی استاد

            char name[34];            //برای اسم استاد که البته نیاز به دوتا آرهیه داریم

             nodeT *next;              // برای نگهداریه آدرس استاد بعدی

            nodeT *privew;            // برای نگهداریه آدرس استا قبلی

};

 

2-غیر از تعریف این struct نیاز به متغییر هایی از نوع پوینتر داریم برای جابه جایی در لیست و نگهداری آدرس اولین خانه:

    nodeT *first;

    nodeT *last;

   

 

3-و یک متغییر از نوع پوینر برای ایجاد خانه جدید یا همون node جدید:

nodeT *newNode;

 


4-و متغییر هایی هم برای دریافت اطلاعاتی که لازمه به nodeبدیم.درواقع نوشتن چنین دستوری اشتباهه:

cin >> newNode->data;

 

 

درستش اینه که بنویسیم:

  cin >> num;

newNode->data = num;

 

5-برای دریافت اسم استاد نیاز به آرایه داریم،که بعد از دریافت نام باید با دستور زیر اونو توی newNode->nameکپی کنیم:

strcpy(newNode->name , namee);

این تابع در فایل <string.h> قرار داره.

 

6-برای اضافه کردن node جدید به لیست از این دستور استفاده میشه:

newNode = new nodeT;


حالا کل برنامه

توی این برنامه لیست ما 3 تا استاد دریافت میکنه بعد با توجه به کدی که شما به برنامه میدین ، برنامه اسم استاد رو چاپ میکنه...

 

#include<iostream>

#include<stdio.h>

#include<string.h>

using namespace std;

int main()

{

struct nodeT

{

  int data;

  char name[34];

   nodeT *next;

   nodeT *privew;

};

 

    nodeT *first;

    nodeT *last;

    nodeT *newNode;

    int num;          // برای دریافت کد پرسنلی

    char namee[34];          // برای دریافت نام استاد

 

    first = NULL;

    last = NULL;

 

 

    for (int i=0; i<3; i++)             // چون قراره 3 تا استاد بگیریم

    {

        cout << "Enter personal code :";

        cin >> num;

             cout<<"Enter name :";

             cin>>namee;

             cout<<"\n\n";

        newNode = new nodeT;      

        newNode->data = num;           

            strcpy(newNode->name , namee);

        newNode->next = NULL;      

        if (first == NULL)                  //برای اولین استادی که اضافه میشه          

        {                            

            first = newNode;

            last = newNode;

            newnode->privew=NULL;

        }

        else                           

        {                             

            newNode->privew=last;

            last->next = newNode;      

            last = newNode;

        }

    }

//*********************search****************************

            int fou;           // برای دریافت کد پرسنلی

            cout<<"<<search by personal code>>... Enter personal code :";

            cin>>fou;

            nodeT *link;           //تعریف متغییر کمکی برای نگهداری آدرس ها

            link=first;               // آدرس اولین استاد

            int c=1;

            while(c==1)

            {

             if( link != NULL)

            {

                 if(link->data==fou)

                {

                    cout<<"\n\t"<<link->name<<endl;

                    c=0;

                }

               else

               {

                    link=link->next;

                }

            }

            else

            c=0;

            }

    return(0);

}


این دستورو توی کامپایلرتون کپی کنین تا نتیجشو ببینین

امیدوارم به دردتون بخوره

 

نظرات 8 + ارسال نظر
[ بدون نام ] جمعه 18 فروردین 1391 ساعت 16:07

فاطمه جون دستت درد نکنه
خیلی بدرد خورد
استارت خوبی واسه ما زدی

خواهش!

AUBI جمعه 18 فروردین 1391 ساعت 16:21

تشکر

خواهش

عاطفه جمعه 18 فروردین 1391 ساعت 17:30

ممنــــــــــــــــون

خواهش!

مینا جمعه 18 فروردین 1391 ساعت 20:33

دستت مرسی!

سرت خواهش!

الهام شنبه 19 فروردین 1391 ساعت 19:48

متشکریـــــــــــــــــــــــــــــــم!

خواهش!

علیرضا شنبه 19 فروردین 1391 ساعت 20:25

من که لینک لیستو اینا رو هنوز نخوندم !
مفید بود
تشکر

من که باور کردم شما چطور؟؟؟؟
خواهش!

AT شنبه 19 فروردین 1391 ساعت 20:40

فاطی جون خیــــــــــــــــلی ممنون!

خواهـــــــــــــــــش!!

ϻӔαʃ§∑ سه‌شنبه 22 فروردین 1391 ساعت 13:21

ممنوووووووون
فکرنمیکنین فعالیتتون تو سایت کم شده؟؟؟؟؟؟
دلیلی داره؟؟؟؟؟؟

خواهش

نه...

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد