تابعی بنویسید که دو ورودی از نوع * node
بگیرد. فرض کنید که node
نوع عناصر یک linked list
است.
اعلان تابع بصورت زیر میباشد: node *rev _ link(node *p, node *q=NULL)
این تابع بصورت زیر صدا زده میشود: (start=rev_link(start
فرض کنید که start
متغیر شروع یک linked list
را نشان میدهد. در ضمن میدانیم برای هر عضو از linked list
، اشارهگر next
به عنصر بعدی آن اشاره میکند و next
عنصر آخر NULL
است. تابع rev_link
بایستی next
هر عنصر را، عنصر قبلیش قرار دهد، و next
اولین عنصر را آخرین عنصر قرار دهد. همچنین این تابع بایستی یک اشارهگر به آخرین عنصر linked list
را بهعنوان خروجی بدهد. بدیهی است که شما در نوشتن این تابع نمیتوانید از متغیّرها یا آرایههای Global استفاده کنید.
برای راحتی فرض کنید که تعداد عناصر linked list
بیشتر از ۱ است.
راهنمایی: متغیّر دوم که در آرگومان تابع قرار دارد یک متغیّر کمکی است که شما میتوانید برای نوشتن تابع از آن بهره ببرید.