Code:
#include "iostream.h"
#include "bool.h"

struct node
{
	int number;
	node * next;
};

void create(node * &head);
void print(node * head);
void kill(node * &head);
void insert(node * & head);

int main()
{
	node * head=NULL;
	create(head);
	print(head);

	for(int i=0;i<4;i++)
	{
		kill(head);
		print(head);

		insert(head);
		print(head);
	}
}

void create(node * &head)
{
	int num,flag=0;
	node * now;

	cout << "Enter a positive number, or a negative number to quit: ";
	cin >> num;

	if(num>0)
	{
		head = new node;
		now = head;
	}
	while (num > 0)
	{

		if(flag==0)
		{
			now->number=num;
			flag++;
		}
		else
		{
			node * newnode = new node;
			newnode->number = num;
			now->next = newnode;
			now = now->next;
		}
		cout << "Enter a positive number, or a negative number to quit: ";
		cin >> num;
		if(num<0)
			now->next = NULL;

	}
	
}

void print(node * head)
{
	node * now = head;

	cout << "\nOriginal List\n";
	if (now == NULL)
		cout << "List is empty"<<endl;

	while (now != NULL)
	{
		cout << now->number<<endl;
		now = now->next;
	}
}

void kill(node * &head)
{
	bool found = false;
	int search;
	cout << "\nWhich number would you like to delete? ";
	cin >> search;
	if(head!=NULL)
	{

		node * before = head;
		node * now = head->next;
		node * after = now->next;

		if(before->number==search)
		{
			head=before->next;
			found = true;
		}
		else
		{
			while (now != NULL)
			{

				if (now->number == search)
				{
					found = true;
					before->next = now->next;
					delete now;
					now = before->next;
					if(after==NULL)
				  break;
					after=now->next;
				}
				else
				{
					if(after==NULL)
					break;
					before=before->next;
					now=now->next;
					after = after->next;

				}
			}
		}
	}
	if (!found)
		cout << "\nThere is no "<<search<<" in the list\n";
}

void insert(node * & head)
{
    node * after;
    bool putIn = false;
	
     if(head==NULL)
     {
		head = new node;
		head->next=NULL;
		int newnumber;
		cout << "\nEnter the number you wish to insert: ";
		cin >> newnumber;
		head->number=newnumber;
      putIn = true;
	}
	else
	{
		bool putIn = false;
		node * before = head;
		node * now = head->next;
		if(now!=NULL)
			node * after = now->next;
		if(now==NULL)
		{
			int newnumber;
			cout << "\nEnter the number you wish to insert: ";
			cin >> newnumber;

			node * newnode = new node;
			newnode -> number = newnumber;
			if(before->number>newnumber)
			{
				newnode->next = head;
				putIn = true;
				head=newnode;
			}
			else if(before->number<newnumber)
			{
				before->next=newnode;
				newnode->next=now;
				putIn = true;
			}
		}
		else
		{

			int newnumber;
			cout << "\nEnter the number you wish to insert: ";
			cin >> newnumber;
			node * newnode = new node;
			newnode -> number = newnumber;
			while (now != NULL)
			{
				if(before->number>newnumber)
					{
						newnode->next = head;
						putIn = true;
						head=newnode;
						break;
					}
				if (now->number < newnumber)
				{
						if(after==NULL)
						break;
						before = before->next;
						now = now->next;
						after = after->next;
					}
					else
					{
						before->next = newnode;
						newnode -> next = now;
						putIn = true;

						break;
					}
				}
				if (!putIn)
				{
					now->next = newnode;
					newnode->next = after;
				}
			}
		}
	
}
What I need to be able to do:

1. Create a list with 2,4,6,8
2. Delete a 2
3. Insert a 2
4. Delete a 6
5. Insert a 7
6. Delete a 8
7. Insert a 10
8. Create a list with nothing on it
9. Delete a 7
10. Insert a 7
11. Create a list with a 2 in it
12. Kill the 2
13. Insert a 3
14. Create a list with 10,2,8,3,7,11,1,14 and sort the list.

Now I really don't care about the sort, but everything else is pretty much a must.
I can get it to do steps 8-10 just fine.
I can get it to do steps 11-13 just fine.
Steps 1-4 work fine until I get to step 7.
When I input a 7 it overrides the original 8.