双向链表的创建,查找,添加,删除
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