در این ویدیو به ادامه بحث لیست پیوندی پرداخته شده است و سه سوال از لیست پیوندی بررسی میشود:
1- اضافه کردن یک گره به انتهای لیست پیوندی
2- معکوس کردن لیست پیوندی
3- جمع دو چند جمله ای
تمرین های جلسه ششم و هفتم ساختمان داده
1- فرض کنید یک لیست پیوندی یک طرفه داریم که هر گره آن شامل نام، نامخانوادگی و معدل دانشجوست. تابعی بنویسید که میانگین معدل دانشجویان و نام دانشجویی که بیشترین معدل را دارد چاپ کند.
تذکر: این لیست پیوندی از استراکچری به نام student استفاده میکند که شامل فیلدهای name، family،avg و link است که لینک اشاره گر به عنصر بعدی است.
2- تابعی بنویسید که دو لیست پیوندی مرتب را دریافت کند و آن را در یک لیست پیوندی به طوری ادغام کند که لیست پیوندی حاصل نیز مرتب باشد.
3- تابع زیر با دریافت آدرس اولین گره از لیست پیوندی چه کاری انجام میدهد؟
int function( node *ptr){
if(ptr == null)
return 0;
else
return (1 + function(ptr -> link));
}
4- ساختار لیست دو پیوندی به صورت زیر است:
typedef structure node *node_pointer;
typedef structure node {
node_pointer llink;
int data;
node_pointer rlink;
}
تابع درج و حذف این ساختار را بنویسید به گونه ای که در تابع insert قرار است item را به بعد نود p اضافه کنیم و در تابع delete نود p را حذف کنیم. الگوی تابع insert و delete را مشاهده میکنید:
void insert (node_pointer p,int item)
int delete(node_pointer p)