سلام
این پست خلاصه چیزاییه که درمورد لیست های پیوندی پیدا کردم.اگه جاییش اشکال داره و اگه شما هم چیز به درد بخوری پیدا کردین بگین...
(دیگه استاد خودشون گفتن گروهی کار کنین!)
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);
}
این دستورو توی کامپایلرتون کپی کنین تا نتیجشو ببینین
امیدوارم به دردتون بخوره
فاطمه جون دستت درد نکنه
خیلی بدرد خورد
استارت خوبی واسه ما زدی
خواهش!
تشکر
خواهش
ممنــــــــــــــــون
خواهش!
دستت مرسی!
سرت خواهش!
متشکریـــــــــــــــــــــــــــــــم!
خواهش!
من که لینک لیستو اینا رو هنوز نخوندم !
مفید بود
تشکر
من که باور کردم شما چطور؟؟؟؟
خواهش!
فاطی جون خیــــــــــــــــلی ممنون!
خواهـــــــــــــــــش!!
ممنوووووووون
فکرنمیکنین فعالیتتون تو سایت کم شده؟؟؟؟؟؟
دلیلی داره؟؟؟؟؟؟
خواهش
نه...