السلام عليكم و رحمة الله و بركاته
اتمنى أن تعطوني فكرة عن طريقة الازاحة
shifting
باستخدام
circular linked list
السلام عليكم و رحمة الله و بركاته
اتمنى أن تعطوني فكرة عن طريقة الازاحة
shifting
باستخدام
circular linked list
وعليكم السلام
شكرا لك لكن ليس هذا ما قصدت
مثلا ادخل المستخدم..
الأرقام التالية..وحدد ان الازاحة تبدأ من
third node
1 2 3 4 5 6
بعد الازاحة
يصبح كالتالي
6 1 2 3 4 5
بدون استعمال الصف ولا المصفوفة..فقط
circular linked list
السلام عليكم ..
(بدون استعمال الصف ولا المصفوفة) يعني ما يكون في الكود متغير من مصفوفه للارقام .
ممكن التوضيح اكثر .
في ال Data Structure الإعتماد الأساسي على المؤشرات (Pointers) و المصفوفات (Arrays)

عند عملية الإزاحة في ال Circular Linker List فإن آخر عنصر ينتقل إلى الأول.
Chao!!!
Great place, and people, but full of sectarianism.
السلام عليكم
هذا كود للبرنامج بس عن طريق المصفوفا ت
وحبيت اطرحه لكم كي اشوف مستواي ارجوا ان تقييموه . وهل هناك حلول افضل
#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
السلام عليكم
حسب ما فهمت من كلامك هو تدوير عناصر المصفوفة التي تقع حول عنصر ما (هل هذا ما تعنيه) هذا العنصر الذي يراد تدوير العناصر التي حوله لا يمكن ان يكون
العنصر الاول لان ليس هنالك عنصر سابق له كما لا يمكن ان يكون العنصر الاخير لان ليس هنالك عنصر بعده
هذا هو الكود الذي يقوم بالعملية وهو صالح لاي مصفوفة وباي حجم
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';
}( _ /)
(='.'=)
(")-(")
أثابكم الله على جهودكم...
الفكرة هي اني ازيح كل عقده ازحة لليمين فتأتي آخر عقده مكان اول عقده
و كما ذكرت ..
A B C D E F
فتصبح
f a b c d e
لكن كيف انفذ ذلك في c++??