======Project: Doubly Linked List Library Implementation======
A project for COURSENAME by YOUR NAME during the SEMESTER YEAR.
This project was begun on DATE and is anticipated to take 1 week. (Upon completion you can correct this with the actual length).
=====Objectives=====
State the purpose of this project. What is the point of this project? What do we hope to accomplish by undertaking it?
=====Prerequisites=====
In order to successfully accomplish/perform this project, the listed resources/experiences need to be consulted/achieved:
* understand functions
* understand pointers
* understand structs
* understand malloc()
* ability to create a linked data structure
=====Background=====
State the idea or purpose of the project. What are you attempting to pursue?
Upon approval, you'll want to fill this section out with more detailed background information. DO NOT JUST PROVIDE A LINK.
Providing any links to original source material, such as from a project page, is a good idea.
You'll want to give a general overview of what is going to be accomplished (for example, if your project is about installing a web server, do a little write-up on web servers. What is it, why do we need one, how does it work, etc.)
=====Scope=====
To better utilize the functionality of the doubly linked list we've been studying in class, a personal implementation for use as a library will be undertaken for use in other projects and activities this semester.
Working from the class example, a library implementation will be created which has the following functions:
* **create**: generate a new node
* **append**: add a new node to the list after a given node
* **remove**: remove a node from the list
* **search**: find if a node exists (likely search by value)
* **insert**: add a new node to the list before a given node
* **delete**: destroy/de-allocate an existing list
* **copy**: duplicate an existing list
Creating a header file will be in order, which will contain the function prototypes of all of the above. The code will be implemented across several files (create.c, add.c, delete.c, process.c, or however you wish to structure it-- have at least 4 .c or .cc source files).
There will also be a sample implementation (ie a file with a **main()**) that will include the header file and demonstrate this library being created (it will link against it to compile).
=====Attributes=====
* pointers: pointers are at the heart of dynamic structures.
* malloc/new: dynamic memory allocation.
* linked lists: this code is going to implement linked lists.
* doubly linked lists: not only is the code implementing a linked list, it is implementing doubly linked lists.
* libraries: this code will be part of a library that can be reused in other projects
=====Code=====
/*
* hello.c - A sample "Hello, World!" program
*
* written by NAME for COURSE on DATE
*
* compile with:
* gcc -o hello hello.c
*
* execute with:
* ./hello
*/
#include
int main()
{
printf("Hello, World!\n"); // Output message to STDOUT
return(0);
}
=====Execution=====
Again, if there is associated code with the project, and you haven't already indicated how to run it, provide a sample run of your code:
lab46:~/src/cprog$ ./hello
Hello, World!
lab46:~/src/cprog$
=====Reflection=====
Comments/thoughts generated through performing the project, observations made, analysis rendered, conclusions wrought. What did you learn from doing this project?
=====References=====
In performing this project, the following resources were referenced:
* URL1
* URL2
* URL3 (provides useful information on topic)
* URL4
Generally, state where you got informative and useful information to help you accomplish this project when you originally worked on it (from Google, other wiki documents on the Lab46 wiki, etc.)