السلام عليكم
اريد كتابة برنامج dictionary باستخدام linked list تحتوي على عشر كلمات مع معانيها عندما ادخل له الكلمه يخرج لي معناها
اريد مساعده في كتابة البرنامج ولو بتوضيح كيفيه عمله
وشكرا
السلام عليكم
اريد كتابة برنامج dictionary باستخدام linked list تحتوي على عشر كلمات مع معانيها عندما ادخل له الكلمه يخرج لي معناها
اريد مساعده في كتابة البرنامج ولو بتوضيح كيفيه عمله
وشكرا
ابدأي بطرح محاولتك وسوف اقوم بمساعدتك إن شاء الله
ولكن هل تعرفين كيف تقومين بعمل linked list اولا؟
الفكرة بسيطة سوف تتكون كل سلسلة من سترينغ يمثل الكلمة وسترينغ يمثل المعني و مؤشر للحلقة التالية
وتكتبين دالة بحث بحسب الكلمة تقوم مثلا باستدعاء الدالة strcmp() لمقارنة النص
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

mental-driller كتب:ابدأي بطرح محاولتك وسوف اقوم بمساعدتك إن شاء الله
ولكن هل تعرفين كيف تقومين بعمل linked list اولا؟
الفكرة بسيطة سوف تتكون كل سلسلة من سترينغ يمثل الكلمة وسترينغ يمثل المعني و مؤشر للحلقة التالية
وتكتبين دالة بحث بحسب الكلمة تقوم مثلا باستدعاء الدالة strcmp() لمقارنة النص
شكرا لك اخ mental-driller بس انا عندي سؤال هلا انا بنيت linked list بهذا الشكل
struct node{
string word;
string maining;
node link;
}
الان اريد بناء class لكن ما هي الدوال والمتغيرات التي يجب وضعها داخل ال class
شكرا للمساعده
لقد قمت بكتابة هذا الكود لكن يوجد مشكله بفنكشن ال search حيث عندما ادخل له اول كلمه بالمصفوفه يخرج لي معناها لكن عندما ادخل له اي كلمه اخرى لا يخرج لي المعنى
الرجاء مساعدتي اين الخطأ
>
#include<iostream>
#include<string>
using namespace std;
struct node{
string word;
string meanning;
node *link;
};
node *head,*cur,*last,*newNode;
node *buildListForward()
{
string woard[]={"suit","loss","kind","office"};
string meanning[]={"aaa","bbb","ccc","vvvv"};
head=0;
last=0;
for(int i=0;i<4;i++)
{
newNode=new node;
newNode->word=woard;
newNode->meanning=meanning;
newNode->link=0;
if(head==0)
{
head=newNode;
last=newNode;
}
else
{
last->link=newNode;
last=newNode;
}
}
return head;
};
void search()
{
string w;
cout<<"enter the word"<<endl;
cin>>w;
cur=head;
while(cur->word==w)
{
cout<<cur->meanning<<endl;
cur=cur->link;
}
}
int main()
{
int d;
buildListForward();
search();
cin>>d;
}
<
ما تريد ليس linked list و إنما map أنظر المثال التالي:
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main()
{
typedef map<string,int> my_map;
typedef map<string,int>::iterator itr;
typedef pair<string,int> kv;
my_map values;
values.insert(kv("ahmed", 100));
values.insert(kv("muhammad", 200));
values.insert(kv("samy", 300));
values.insert(kv("amr", 400));
for ( itr it = values.begin(); it != values.end(); it++ )
cout << it->first << " => " << it->second << endl;
}و الله ولي التوفيق
مدونتي: C++ Tips and Tricks
شكرا لك لكن انا لا اعلم ما هي ال map كما ان المدرس طلب استخدام linked list
norhan ahmad كتب:لقد قمت بكتابة هذا الكود لكن يوجد مشكله بفنكشن ال search حيث عندما ادخل له اول كلمه بالمصفوفه يخرج لي معناها لكن عندما ادخل له اي كلمه اخرى لا يخرج لي المعنى
الرجاء مساعدتي اين الخطأ