In computer networking, a node is a connection point or communication endpoint in a network, such as a computer, printer, switch, or router). Each node is an endpoint for data transmissions or redistribution, and nodes have either a programmed or engineered capability to recognize, process, and forward transmissions to other network nodes. Nodes highly depend on the referred network and protocol layer to form a network connection. In addition to computer networking, the term "node" is also used in computer science to refer to a basic unit of a data structure, such as a linked list or tree data structure). Nodes contain data and may link to other nodes, and links between nodes are often implemented by pointers).