در این ویدیو به ادامه بحث لیست پیوندی پرداخته شده است و سه سوال از لیست پیوندی بررسی می‌شود:


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)