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){
}
}
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){
......
......@@ -19,10 +19,10 @@ NODE_INT psearch(NODE *head, datatype data);
NODE_INT search(NODE *head, datatype data);
NODE *construct(datatype data, NODE *next);
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);
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);
NODE *construct_list(datatype list[], int size);
int add_to_end(NODE *head, datatype new_data);
......
......@@ -7,10 +7,10 @@ void panic(){
}
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("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);
scanf("%d",&choice);
switch(choice)
......@@ -20,7 +20,7 @@ int menu(struct Node *head){
scanf("%d",&value);
add_to_end(head, value);
break;
case 2: //delete node
case 2: //delete node at
// break;
case 3: //insert
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){
puts("Deleting the list...");
delete_list(head);
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;
}
......
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