From 9969128e9d03ec2b5fd069787d38fb112b279dc2 Mon Sep 17 00:00:00 2001 From: Nilesh Payghan <26365396+NileshPayghan@users.noreply.github.com> Date: Wed, 4 Oct 2017 10:45:25 +0530 Subject: [PATCH] Add files via upload --- _readme.swp | Bin 0 -> 12288 bytes library.cpp | 228 +++++++++++++++++++++++++++++++++++++++++++++++++ library.so | Bin 0 -> 14320 bytes readme | 8 ++ sharedheader.h | 31 +++++++ user | Bin 0 -> 9264 bytes user.cpp | 43 ++++++++++ 7 files changed, 310 insertions(+) create mode 100644 _readme.swp create mode 100644 library.cpp create mode 100644 library.so create mode 100644 readme create mode 100644 sharedheader.h create mode 100644 user create mode 100644 user.cpp diff --git a/_readme.swp b/_readme.swp new file mode 100644 index 0000000000000000000000000000000000000000..56350be33b53ec010cc9d00bcadb5925938ba70a GIT binary patch literal 12288 zcmeI&y-ve05C`y-1u^g;c!2}PDoOc}kh;==N`ShQk;+ZnHq?nD+eLJNjW>c9Vq|CL z+N3R@BIcrhB*(FRI>)~)%5`fu%_}+!PCdSMCb#1H;O8t+(hg=bzxPF)f6?-lU?a=8wY#DtgBWJ@{I6>B#QRGHOTCxLSWK5Sy*9bGFhP;z{}fB*y_009U<00Izz00bbgf&wD;y!S2sAGpmg z&;R^q-~Vqse&zPU?U`GL+by?g+zOr(uM7bQKmY;|fB*y_009U<00I#BLqPPLG$bEn zG;&;hPHvD`igcQaET)l_<&x+sNp%XsNC|5@ykIX+A6QL2uI{gU EpY{8O%>V!Z literal 0 HcmV?d00001 diff --git a/library.cpp b/library.cpp new file mode 100644 index 0000000..7ebba19 --- /dev/null +++ b/library.cpp @@ -0,0 +1,228 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +//Name: +//Modified: 2017 +//Author: Nilesh Payghan +//Input: +//output: +//Description: +//////////////////////////////////////////////////////////////////////////////////////////////////////// + +#include +#include + +#include"sharedheader.h" + + +SinglyLinkedList::SinglyLinkedList() +{ + head=NULL; +} + +///////////////////////////////////////////////////////////////////////////////////////////// +void SinglyLinkedList::InsertFirst(int data) +{ + + PNODE newn=NULL; + newn=(PNODE)malloc(sizeof(NODE)); + + //copy data to node + newn->data=data; + //copy the address of head node of linked list into newn->next + newn->next=head; + //copy the address of newn element into *head + head=newn; +} +////////////////////////////////////////////////////////////////////////////////////////////// + +void SinglyLinkedList::InsertLast(int data) +{ + + PNODE newn=NULL; + PNODE temp=head; + newn=(PNODE)malloc(sizeof(NODE)); + if(newn==NULL) + { + return; + } + newn->data=data; + newn->next=NULL; + //if linked is empty + if(head==NULL) + { + head=newn; + } + //if linked list contains at least single element + else + { + //go till end of linked list + while(temp->next!=NULL) + { + temp=temp->next; + } + //copy address of newn into end of the linked list + temp->next=newn; + } +} +///////////////////////////////////////////////////////////////////////////////////////////// +void SinglyLinkedList::Display() +{ + PNODE first=head; + //traversing the whole linked list elements + while(first!=NULL) + { + cout<<(first->data)<next; + } +} +//////////////////////////////////////////////////////////////////////////////////////////// +int SinglyLinkedList::llCount() +{ +if(head==NULL) + return 0; +int cnt=0; +PNODE temp=head; + //traversing the whole linked list elements + while(temp!=NULL) + { + temp=temp->next; + cnt++; + } +return cnt; +} +/////////////////////////////////////////////////////////////////////////////////////////// +void SinglyLinkedList::InsertAtPosition(int data,int pos) +{ +if(pos<=0 || pos>(llCount()+1)) + return; +if(head==NULL && pos>1) + return; + + int i=1; + PNODE newn=NULL; + PNODE temp=head; + newn=(PNODE)malloc(sizeof(NODE)); + if(newn==NULL) + { + return; + } + + newn->data=data; + newn->next=NULL; + if(temp==NULL && pos==1) + { + temp=newn; + newn->next=NULL; + } + else + { + while(inext!=NULL) + { + temp=temp->next; + i++; + } + newn->next=temp->next; + temp->next=newn; + } +} +//////////////////////////////////////////////////////////////////////////////////// + +void SinglyLinkedList::DisplayN(int no) +{ +if(head==NULL || no<=0) + return; +PNODE first=head; + //traversing the whole linked list elements + while(first!=NULL && no>0) + { + cout<<(first->data)<next; + no--; + } +} +/*//////////////////////////////////////////////////////////////////////////////// +void SinglyLinkedList::DisplayReverse() +{ + PNODE first=head; +if(first==NULL) + return; + // recursive call to the function + first=first->next; + DisplayReverse(); + cout<<(first->data)<next; + temp->next=NULL; + delete(temp); +} +////////////////////////////////////////////////////////////////////////// +void SinglyLinkedList::DeleteLast() +{ + PNODE temp=head; + PNODE temp2=NULL; + if(temp==NULL) + return; + if(temp->next==NULL) + { + delete(temp); + head=NULL; + } + else + { + while(temp->next->next!=NULL) + { + temp=temp->next; + } + temp2=temp->next; + temp->next=NULL; + delete(temp2); + } +} +/////////////////////////////////////////////////////////////////////////////// +void SinglyLinkedList::DeleteAll() +{ + if(head==NULL) + return; + PNODE temp=head; + delete(temp); + head=NULL; +} +/////////////////////////////////////////////////////////////////////////////// +void SinglyLinkedList::DeleteNode(int data) +{ + PNODE temp=head; + PNODE temp2=head; + if(head==NULL) + return; + while(temp->next!=NULL) + { + if(temp->data==data) + break; + temp2=temp; + temp=temp->next; + } + if(temp->data==data) + { + temp2=temp->next; + temp->next=NULL; + delete(temp); + } +} +extern "C" +{ + SinglyLinkedList* create() + { + return new SinglyLinkedList; + } + void destroy(SinglyLinkedList* p) + { + delete p; + } +} + + diff --git a/library.so b/library.so new file mode 100644 index 0000000000000000000000000000000000000000..ca8e5b0c0aa6adbcae5e386d63880f6c8da94038 GIT binary patch literal 14320 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 literal 0 HcmV?d00001 diff --git a/readme b/readme new file mode 100644 index 0000000..85dd34d --- /dev/null +++ b/readme @@ -0,0 +1,8 @@ +command too create .so file: + g++ -fPIC -shared library.cpp -o library.so + +command t create executable for client program + g++ user.cpp -ldl -o user + +after executing this command use executable : ./user + \ No newline at end of file diff --git a/sharedheader.h b/sharedheader.h new file mode 100644 index 0000000..852122c --- /dev/null +++ b/sharedheader.h @@ -0,0 +1,31 @@ +#include +#include +using namespace std; +typedef struct node +{ +int data; +struct node* next; +}NODE,*PNODE,**PPNODE; + + +class SinglyLinkedList +{ +private: + PNODE head; +public: + SinglyLinkedList(); + void InsertFirst(int); + void InsertLast(int); + void InsertAtPosition(int,int); + void Display(); + void DisplayN(int); + //void DisplayReverse(); + //void DisplayForward();//recursively + int llCount(); + + void DeleteFirst(); + void DeleteAtPosition(int); + void DeleteLast(); + void DeleteAll(); + void DeleteNode(int); +}; \ No newline at end of file diff --git a/user b/user new file mode 100644 index 0000000000000000000000000000000000000000..1939fda4829d1dfe8ae5169332b95b162c0a20ed GIT binary patch literal 9264 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 literal 0 HcmV?d00001 diff --git a/user.cpp b/user.cpp new file mode 100644 index 0000000..fb53f97 --- /dev/null +++ b/user.cpp @@ -0,0 +1,43 @@ +#include +#include + +#include"sharedheader.h" +#include +int main() +{ + + //SinglyLinkedList sll; + void* p=NULL; + SinglyLinkedList* ptr=NULL; + SinglyLinkedList*(*fp1)()=NULL; + void (*fp2)(SinglyLinkedList*)=NULL; + p=dlopen("library.so",RTLD_LAZY); + if(!p) + { + cout<<"unable to load library"; + return -1; + } + fp1=(SinglyLinkedList*(*)())dlsym(p,"create"); + fp2=(void(*)(SinglyLinkedList*))dlsym(p,"destroy"); + ptr=fp1(); + cout<InsertFirst(10); + ptr->InsertLast(20); + ptr->InsertLast(20); + ptr->InsertLast(20); + ptr->InsertAtPosition(30,2); + ptr->DeleteFirst(); + ptr->Display(); + //ptr->DeleteLast(); + //ptr->DisplayN(2); + ptr->DeleteNode(20); + //ptr->DeleteAll(); + ptr->Display(); + fp2(ptr); + dlclose(p); + +cout<<"main"; + +return 0; +}