#include "Node.h" #include <stdlib.h> #include <iostream>
using namespace std;
int initialize(LinkList& list) { int retval = 1; int headNumber = 0; Node* head = new Node; if (NULL != head) { head->data = &headNumber; head->next = NULL; list = head; retval = 1; } else { retval = 0; } return retval; }
int cleanup(LinkList& list){ Node* p = list; Node* temp = NULL; int retval = 1; if (NULL == p) { retval = 1; } else { temp = p->next; while (NULL != temp) { p = temp->next; delete temp; temp = p; } delete list; retval = 1; } return retval; }
int insertData(LinkList& list, void* pdata) { static int nodeNumber = 0; Node* p = list; Node* temp = NULL; Node* insertOne = new Node; int retval = 1; if (NULL != insertOne) { if (NULL == p) { retval = 0; } else { while (NULL != p) { temp = p; p = p -> next; } temp->next = insertOne; insertOne->data = pdata; insertOne->next = NULL; nodeNumber++; list->data = &nodeNumber; retval = 1; } } else { retval = 0; } return retval; }
//int searchData(LinkList& list, void* pdata) {
/*int deleteData(LinkList& list, void* pdata) { Node* p = list; int retval; if (NULL == p) { retval = 0; } else { temp = p->next; while () { } } }*/
#include <iostream> #include <stdlib.h> #include "Node.h" #include <string> using namespace std;
int main(int argc, char *argv[]) { LinkList a; char d='h'; initialize(a); cout << *(int*)(a->data); insertData(a,&d); insertData(a,&d); cout << *(int*)(a->data); cleanup(a); // cout << *(char*)(a->data); system("PAUSE"); return 0; }
#ifndef NODE_H #define NODE_H
typedef struct Node { void* data; Node* next; }Node,*LinkList;
int initialize(LinkList& list); int cleanup(LinkList& list);
int insertData(LinkList& list, void* pdata); int deleteData(LinkList& list, void* pdata); int searchData(LinkList& list, void* pdata); // return the index that first find
#endif 
|