الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أستخدم أكثر من لينكت لست في داله بحيث أني أحفظ التغيرات فيهم

مغلق
بدأه saud_1 في 15 مايو 2003 · 10 رد · 1,060 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف أستخدمهم مع أني حاولت وما قدرت وكاتوضيح شوفو هذي الداله

int are_same(char h,list *cc,FILE *fp,list *w,list *line)
{
	char ch;
	int z;
	list *g,*m;
	ch=readchar(fp,cc);
	if (ch==EOF)
		return (11);
	if (ch==h)
	{
		w=insert(w,ch);
		line=insert(line,ch);
		if (cc)
			cc=cc->next;
		return 1;
	}
	return 0;
}

اللينكت لست w و line عندما أسويلهم إضافه مايتغيرون

#2

أخي الكريم:

أرجو منك كتابت تعريف اللنك لست هنا و من ثم كتابت الدالة التي تقوم بعمل

insert في اللنك لست لأني أعتقد ان الخطأ منها :rolleyes:

#3

هلا أخوي وتسلم على الرد هذا هو اللنك

struct node
{
	char c;
	struct node *next;
};
typedef struct node list;

وهذا الإنسيرت

list *insert(list *temp,char h)
{
	list *c,*l;
	c=(list*)malloc(sizeof(list));
	c->c=h;
	c->next=NULL;

	if (!temp)
	{
	temp=c;
	return temp;
	}
	else
	l=temp;
	while (l->next)
		l=l->next;
	l->next=c;
	return temp;
}
#4

كتبت ردي وتعليقي ولكن بعد ما شفت تعريف داله الانسرت

شفتها غير

ولذلك مسحت مشاركتي

#5

السلام عليكم,,,

أخوي جرب هذا التعريف:

typedef struct node

{

	char c;

    struct node *next;

}recnode, *ptr;

ptr CreateNode(void)

{

	ptr p;

	p = (ptr)malloc(sizeof(recnode));

	return p;

}



void Insert_Last(ptr *h, char x)

{

	ptr p, q;



	p = CreateNode();

	p->c = x;

	p->next = NULL;   /* preparing p to be the last node in the list */



	if(*h == NULL)	/* if h is empty then p will be the first node in the list */

  *h = p;     

	else

	{

  q = *h;  /* assigne q to the first node in the list */



  while(q->next != NULL)    /* while not end of the list */

 	 q = q->next;    /* incresing the posetion of q */



  q->next = p;	/* p now is the last node in the list */

	}

}



void Insert_First(ptr *h, char x)

{

	ptr p;

	p = CreateNode();



	p->c = x;



	p->next = *h;

	*h = p;

}

جرب أحد هاتين الدالتين فكلهما يعمل insert ولكن بإختلاف المكان :)

أعتقد ان الكود صحيح لأني لم اجربه فلا يوجد لدي كمبايلر سي الآن :o

ولك تحياتي أخي ,,, طلال.

#6

بالنسبة لبرنامجك أعتقد لو غيرت:

list *insert(list *temp,char h)

إلى:

list *insert(list **temp,char h)

ستنحل مشكلتك لأنك الآن لا تجعلها قابله للتغيير لأنك لا تستدعيها بواسطة

call by refrence بل call by value.

جرب و أخبرنا بالنتائج :)

#7

أيوه ياشيخ ضبطت معي أخيرا ً

الف شكر لك يامشرفنا العزيز

#8

الحمد لله يا أخي (f)

اقتباس
أيوه ياشيخ ضبطت معي أخيرا ً

أي حل ظبط معاك فيهم ؟

الأول أم الثاني ؟

اقتباس
الف شكر لك يامشرفنا العزيز

كيف الحال أخوي ؟

شكلك مضيع :D

و لك تحياتي ,,, طلال (f)

#9

أعذرني ياخوي عندي مشروع كتبت فيه 300 سطر ومازلت في نصفه

زيين بعد خليتك شي ماهو ردي

اللي ضبط معاي الكود الأول بس فيه غلط عندك وعدلته وهو أنك استخدمت

( ptr* و recnode ) على انهم متغيرات وشوف التعديل

struct node
{
	char c;
	struct node *next;
};
typedef struct node recnode;
typedef struct node *ptr;
#10

لا أخوي انا ما استخدمتها متغيرات لاحظ typedef

انا استخدمتها معرفات :)

و على قولتك الحمد لله حطيتني شي موب ردي :D ههههههه

#11

ااااااااه صح عليك ما أشفتها ذي

حقك علي انا غلطان في ذي

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…