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

Shifting By Liked List

بدأه *cpu* في 28 مارس 2008 · 7 رد · 1,273 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

اتمنى أن تعطوني فكرة عن طريقة الازاحة

shifting

باستخدام

circular linked list

#3

وعليكم السلام

شكرا لك لكن ليس هذا ما قصدت

مثلا ادخل المستخدم..

الأرقام التالية..وحدد ان الازاحة تبدأ من

third node

1 2 3 4 5 6

بعد الازاحة

يصبح كالتالي

6 1 2 3 4 5

بدون استعمال الصف ولا المصفوفة..فقط

circular linked list

#4

السلام عليكم ..

(بدون استعمال الصف ولا المصفوفة) يعني ما يكون في الكود متغير من مصفوفه للارقام .

ممكن التوضيح اكثر .

#5

في ال Data Structure الإعتماد الأساسي على المؤشرات (Pointers) و المصفوفات (Arrays)

782857-753.jpg

عند عملية الإزاحة في ال Circular Linker List فإن آخر عنصر ينتقل إلى الأول.

Chao!!!

Great place, and people, but full of sectarianism.

#6

السلام عليكم

هذا كود للبرنامج بس عن طريق المصفوفا ت

وحبيت اطرحه لكم كي اشوف مستواي ارجوا ان تقييموه . وهل هناك حلول افضل

 #include<iostream.h></P> 
 #include<conio.h></P> 
 void main()
 {	   clrscr();</P> 
   cout<<"HOW MANY NUMBER(s) YOU WILL BE ENTER \n";</P> 
	int no; cin>>no;</P> 
	int x[100],y[100];</P> 
	cout<<"ENTER THE NUMBERS \n";</P> 
	for(int i=0;i<no;i++)</P> 
	cin>>x; //get the numbers from user</P> 
	cout<<" \nYOUR NUMBERS ARE :-\n [ ";</P> 
	 for(i=0;i<no;i++)</P> 
	 cout<<x<<","; cout<<" ]\n";	  //print the number</P> 
	 cout<<" \nTHE NUMBERS AFTER MINPLATION ARE :-\n [ ";</P> 
	 int t;	  //this is a temp for last number</P> 
	 t=x[no-1];</P> 
	for(int l=1;l<no;l++)</P> 
	y[l]=x[l-1]; /* assginment array to onther array */y[0]=t;</P> 
	for(i=0;i<no;i++)</P> 
	cout<<y<<",";	 //print the array after minplation</P> 
	cout<<" ] \n";</P> 
   getche();</P> 
	   }
</P>

تم تعديل هذه المشاركة بواسطة ms_z في 29 مارس 2008 في 20:42

#7

السلام عليكم

حسب ما فهمت من كلامك هو تدوير عناصر المصفوفة التي تقع حول عنصر ما (هل هذا ما تعنيه) هذا العنصر الذي يراد تدوير العناصر التي حوله لا يمكن ان يكون

العنصر الاول لان ليس هنالك عنصر سابق له كما لا يمكن ان يكون العنصر الاخير لان ليس هنالك عنصر بعده

هذا هو الكود الذي يقوم بالعملية وهو صالح لاي مصفوفة وباي حجم

	vector<int> vi;
	int n;

	vi.push_back(1);
	vi.push_back(2);
	vi.push_back(3);
	vi.push_back(4);
	vi.push_back(5);
	vi.push_back(6);

	cin >> n;


	if(n <= 1 || n >= vi.size())
		return 0;

	vector<int>::iterator itn = vi.begin() + n -1;	
	int count = vi.size() - n > n-1 ? n - 1 : vi.size()-n;


	for(int x = 1; x <= count;x++)
	{
		iter_swap(itn-x,itn+x);
	}

	for( int y = 0; y < vi.size(); y++)
	{
		cout << vi[y] << '\n';
	}

( _ /)

(='.'=)

(")-(")

#8

أثابكم الله على جهودكم...

الفكرة هي اني ازيح كل عقده ازحة لليمين فتأتي آخر عقده مكان اول عقده

و كما ذكرت ..

A B C D E F

فتصبح

f a b c d e

لكن كيف انفذ ذلك في c++??

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