#include <stdio.h> #include <stdlib.h> #include <string.h> #define sg struct gammal struct gammal{ -char name[20]; -int payment; -struct gammal *next, *prev; }; sg* add (sg *g, sg *head){ -if(head==NULL || g->next == head){ --sg *t = (sg*)malloc(sizeof(sg)); --printf("Enter the name: "); --scanf("%s",t->name); --printf("Enter payment: "); --scanf("%d",&t->payment); --if(head == NULL){ ---t->next = t; ---t->prev = t; ---return t; --} --t->next = head; --head->prev = t; --g->next = t; --t->prev = g; --return g; -} -g->next = add(g->next,head); -return g; } void show (sg *g,sg *head){ -do{ --printf("------ "); --printf("%s ",g->name); --printf("%d ",g->payment); --g = g->prev; -}while(g != head); -printf("------ "); } int main() { -int a; -sg *head=NULL; -do{ --printf("1) Add " ----"2) Show " ----"Please, enter a number: "); --scanf("%d",&a); --if(a==1) ---head = add(head,head); --else if(a==2) ---show(head,head); -}while( a ); }
لو أن ال linked list فيها : 1 , 2 , 7 , 5 , 9
يقوم المستخدم بإدخال ترتيب العنصر الجديد و ليكن 3 .. و يقوم بإدخال القيمة و لتكن 6 فيقوم البرنامج بتسجيل ال 6 مكان ال 7 و يزيح ال 7 لكى يكون ترتيبها رقم 4 فى ال linked list فتصبح العناصر فيها :
1 , 2 , 6 , 7 , 5 , 9 ( للمتفوقين )
3. برنامج يتيح إضافة أرقام في Double circular linked list بحيث لا يمكن إضافة رقم أصغر من الرقم الذي يسبقه فيكون ترتيب العناصر فى ال linked list ترتيب تصاعدى ( من الأصغر إلى الأكبر )