Sei sulla pagina 1di 7

#include<stdio.h> #include<stdlib.h> #include "Node.

h" int main() { NodePtr startPtr = NULL; int choice = 0; int delData = 0; int sData = 0; do { menu(); printf("? "); scanf("%d",&choice); //printf("Main startPtr %p \n" , startPtr); switch ( choice ) { case 1: cls(); insertFirst( &startPtr ); break; case 2: cls(); insertLast( &startPtr ); break; case 3: cls(); delData = deleteFirstElement(&startPtr); if(delData != -1) printf("Data = %d is deleted \n",delDat a); break; case 4: cls(); printList(&startPtr); break; case 5: cls(); printf("\nPlease input search data:"); scanf("%d",&sData); sData = search(&startPtr,sData); if(sData == -1) { printf("\n Search Data is not found: %d\ n",sData); } else { printf("\n Search Data is found: %d\n",s Data); }

break; case 6: cls(); delData = deleteLastElement(&startPtr); if(delData != -1) printf("Data = %d is deleted from Last\ n",delData); else printf("Data = %d cannot be deleted from Last\n",delData); break; case 7: cls(); end(&startPtr); break; default: printf( "Invalid choice.\n\n" ); break; } } while(choice != 7); return 0; } // void menu() { printf( "Enter your choice:\n" " 1 to insert an element at first into the list. (Basa Ekle )\n" " \n" " 3 to delete first element in the list (Bastan sil)\n" " 4 to print list members (Listele)\n" " 5 to search element in the List (Arama)\n" " 6 to delete last element in the List (Sondan sil)\n " " 7 to end.\n" ); } //add node as a first node void insertFirst( NodePtr *sPtr ) { NodePtr newPtr = NULL; newPtr = (Node *) malloc(sizeof(Node)); newPtr->nextPtr = NULL; printf("Please Input integer value:"); scanf("%d",&newPtr->data); 2 to insert an element at last into the list (Sona Ekle).

if(newPtr != NULL) { if(sPtr == NULL) { //printf("MElek X3\n"); *sPtr = newPtr; } else { //printf("MElek X4\n"); newPtr->nextPtr = *sPtr; *sPtr = newPtr; } } else { printf( "Data can not inserted. No memory available.\n" ); } } void printList( NodePtr *sPtr ) { //printf("sPtr %p\n",sPtr); if(*sPtr == NULL) { printf("List is empty"); } else { NodePtr currentPtr = *sPtr; printf("\n------ List -------\n"); while(currentPtr != NULL) { printf("Value %d \n", currentPtr->data); currentPtr = currentPtr->nextPtr; } printf("\n-------------------\n"); } } //*********************************************************************** void cls(void) { system("cls"); } int deleteFirstElement( NodePtr *sPtr ) { int deleteData; if(*sPtr == NULL) { printf("List is empty..\n "); deleteData = -1;

} else { NodePtr currentPtr = *sPtr; *sPtr = (*sPtr)->nextPtr; deleteData = currentPtr->data; delete(currentPtr); } return deleteData; } int deleteLastElement( NodePtr *sPtr ) { int deleteData; if(*sPtr == NULL) { printf("List is empty..\n "); deleteData = -1; } else { NodePtr currentPtr = *sPtr; NodePtr prevPtr = *sPtr; while( currentPtr->nextPtr != NULL ) { prevPtr = currentPtr; currentPtr = currentPtr->nextPtr; } prevPtr->nextPtr = NULL; deleteData = currentPtr->data; delete(currentPtr); return deleteData; } } //simdilik dursun. void end(NodePtr *sPtr ) { int delData = 0; if(*sPtr == NULL) { printf("List is empty..\n "); } else { printf("---------------- END -------------\n"); while(*sPtr != NULL) { delData = deleteFirstElement(sPtr); printf("%d is deleted\n",delData); }

printf("-----------------------------\n"); } } void insertLast(NodePtr *sPtr ) { NodePtr newPtr = NULL; newPtr = (Node *) malloc(sizeof(Node)); newPtr->nextPtr = NULL; printf("Please new Struct integer value:"); scanf("%d",&newPtr->data); if(newPtr != NULL) { if(sPtr == NULL) { *sPtr = newPtr; } else { NodePtr currentPtr = *sPtr; while(currentPtr->nextPtr != NULL) { currentPtr = currentPtr->nextPtr; } currentPtr->nextPtr = newPtr; } } else { printf( "Data can not inserted. No memory available.\n" ); } } int isEmpty(NodePtr *sPtr ) { if(*sPtr == NULL) return 0; else return 1; } int search( NodePtr *sPtr , int search) { int searchData=0; if(*sPtr == NULL) { printf("List is empty..\n "); searchData = -1; } else {

NodePtr currentPtr = *sPtr; searchData = -1; while( currentPtr != NULL ) { if(currentPtr->data == search) searchData = currentPtr->data; currentPtr = currentPtr->nextPtr; } } return searchData; } void inserT(NodePtr *sPtr , int x){ NodePtr newPtr=NULL; newPtr=(Node *)malloc(sizeof(Node)); newPtr->data=x; newPtr->nextPtr=NULL; //son elemanda sknt ckmasn de tasarlanms if(*sPtr==NULL) { *sPtr=newPtr; } else { NodePtr currenPtr=*sPtr; NodePtr prevPtr=NULL; while(current!=NULL && current->data < x) { prevPtr=currentPtr; currentPtr=current->nextPtr; } if(prevPtr==NULL) { newPtr->nextPtr= *sPtr; *sPtr=newPtr; } else { prevPtr -> nextPtr=newPtr; newPtr -> nextPtr=currentPtr; } } int del(NodePtr * , int ){ int delValue=-1; if(isexist(sPtr ,x)==-1) { printf("the value %d is not exist",x); return delValue; } else { NodePtr currenPtr=*sPtr; NodePtr prevPtr=NULL; while(currentPtr!=NULL && currentPtr->data!=x){ prevPtr=currentPtr; current=current->nextPtr;

} deleteValue=currentPtr->data; prevPtr=nextPtr=currentPtr->nextPtr; delete(currentPtr); } return delValue; }

Potrebbero piacerti anche