双向链表的创建,查找,添加,删除 dlink createdlist(int *array,int len) { dlink head; // * 双向串列的指标 */ dlink before; // * 前一节点的指标 */ dlink new_node; // * 新节点的指标 */ int i; // * 建立第一个节点 */ // * 配置节点记忆体 */ head = ( dlink ) malloc(sizeof(dnode)); if ( !head ) // * 检查记忆体指标 */ return NULL; head->data = array[0]; // * 建立节点内容 */ head->front = NULL; // * 设定指标初值 */ head->back = NULL; // * 设定指标初值 */ before = head; // * 指向第一个节点 */ for ( i = 1; i data = array[i]; new_node->front = NULL; // * 设定指标初值 */ new_node->back = before; // * 将新节点指向前节点 */ before->front = new_node; // * 将前节点指向新节点 */ before = new_node; // * 新节点成为前节点 */ } return head; // * 传回串列起始指标 */ }
1