Commit 1733463e authored by h702579998's avatar h702579998

Finished up traverseBefore, beginning work on delete_node_add

parent 69c441bf
...@@ -96,6 +96,28 @@ NODE_INT traverse(NODE *head, int pos){ ...@@ -96,6 +96,28 @@ NODE_INT traverse(NODE *head, int pos){
} }
} }
return out; return out;
}
NODE_INT traverseBefore(NODE *head, int pos, int offset){
int newPos = pos-offset;
NODE_INT returnCode = traverse(head, newPos);
switch(returnCode.num){
case 0: printf("Case 0-> here is the data: %d\n", returnCode.node->data);
break;
case 1: printf("Case 1-> here is the data: %d\n",returnCode.node->data);
break;
case 2: printf("Not in the list; returning final data point: %d\n",returnCode.node->data);
break;
}
}
int delete_node_at(NODE *head, int pos){
NODE_INT nodeToDelete = traverse(head, pos);
NODE_INT priorNode = traverse(head, pos-1);
} }
int delete_node_after(NODE *head){ int delete_node_after(NODE *head){
......
...@@ -19,10 +19,10 @@ NODE_INT psearch(NODE *head, datatype data); ...@@ -19,10 +19,10 @@ NODE_INT psearch(NODE *head, datatype data);
NODE_INT search(NODE *head, datatype data); NODE_INT search(NODE *head, datatype data);
NODE *construct(datatype data, NODE *next); NODE *construct(datatype data, NODE *next);
NODE_INT traverse(NODE *head, int pos); NODE_INT traverse(NODE *head, int pos);
//NODE_INT traverse_before(NODE *head, int pos, int before); NODE_INT traverseBefore(NODE *head, int pos, int offset);
int delete_node_after(NODE *head); int delete_node_after(NODE *head);
void delete_list(NODE *head); void delete_list(NODE *head);
//int delete_node_at(NODE *head, int pos); int delete_node_at(NODE *head, int pos);
//int delete_node(NODE *head, datatype data); //int delete_node(NODE *head, datatype data);
NODE *construct_list(datatype list[], int size); NODE *construct_list(datatype list[], int size);
int add_to_end(NODE *head, datatype new_data); int add_to_end(NODE *head, datatype new_data);
......
...@@ -7,10 +7,10 @@ void panic(){ ...@@ -7,10 +7,10 @@ void panic(){
} }
int menu(struct Node *head){ int menu(struct Node *head){
int choice, input, index, value; int choice, input, index, value, input2;
puts("Welcome to the menu for creation of linked lists."); puts("Welcome to the menu for creation of linked lists.");
puts("Displaying possible actions:"); puts("Displaying possible actions:");
puts("1. Add at End;\n2. Delete Node;\n3. Insert Node;\n4. Search for value;\n5. Print a node;\n6. Print full list;\n7. Delete list and exit;"); puts("1. Add at End;\n2. Delete Node;\n3. Insert Node;\n4. Search for value;\n5. Print a node;\n6. Print full list;\n7. Delete list and exit;\n8. Print node prior to selected.\n");
fputs("Please input the number of your desired action: ",stdout); fputs("Please input the number of your desired action: ",stdout);
scanf("%d",&choice); scanf("%d",&choice);
switch(choice) switch(choice)
...@@ -20,7 +20,7 @@ int menu(struct Node *head){ ...@@ -20,7 +20,7 @@ int menu(struct Node *head){
scanf("%d",&value); scanf("%d",&value);
add_to_end(head, value); add_to_end(head, value);
break; break;
case 2: //delete node case 2: //delete node at
// break; // break;
case 3: //insert case 3: //insert
fputs("You have decided to insert a value at a specific point. Input the node index now: ",stdout); fputs("You have decided to insert a value at a specific point. Input the node index now: ",stdout);
...@@ -47,6 +47,14 @@ int menu(struct Node *head){ ...@@ -47,6 +47,14 @@ int menu(struct Node *head){
puts("Deleting the list..."); puts("Deleting the list...");
delete_list(head); delete_list(head);
return 1; return 1;
case 8: //return data two areas before
puts("Returning data at offset");
fputs("Please input the node index now: ",stdout);
scanf("%d",&input);
fputs("Please input the offset prior now: ",stdout);
scanf("%d",&input2);
traverseBefore(head,input,input2);
break;
} }
return 0; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment