标签:
// list.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>using namespace std;typedef struct list_node {int data;list_node *left;list_node *right;} Node;Node *create_node(int data){Node *node = new Node();node->data = data;node->left = node->right = NULL;return node;}void delete_node( Node * p ){delete p;p = NULL ;}void insert_tail(Node *root , int data){Node *node = create_node( data );Node *last_node = root;while(last_node->right != NULL) last_node = last_node->right;last_node->right = node;node->left = last_node;}Node *find_node(Node *root , int data ){Node *node = root ;while(node != NULL) {if( data == node->data ) {return node;}node = node->right;}return NULL;}void insert_back_node(Node *root, int dat , int data ){Node *node = find_node(root,dat);if( node == NULL || node->left == NULL ) return;Node *new_node = create_node( data );node->left->right = new_node;new_node->right = node;}void insert_front_node(Node *root, int dat , int data ){Node *node = find_node(root,dat);if( node == NULL ) return;Node *new_node = create_node( data );new_node->right = node->right;new_node->left = node;node->right = new_node;}void remote_node ( Node *root,int data ){Node *node = find_node ( root , data );if( node == NULL ) {return ;} else if ( node->left == NULL ) {node->right->left = NULL;} else if ( node->right == NULL ) {node->left->right = NULL ;} else {node->left->right = node->right;node->right->left = node->left;}delete_node( node );}void traversal( Node *root ){Node *last_node = root;do{cout<<last_node->data<<endl ;last_node = last_node->right;} while(last_node != NULL ) ;}int main(int argc, char* argv[]){Node *root = create_node(1);insert_tail(root,4);insert_tail(root,5);insert_tail(root,800);insert_tail(root,6);insert_tail(root,7);Node *p = find_node(root,5);cout << p <<endl;if(p!=NULL) cout<<p->data <<endl;insert_back_node(root,5,20);insert_front_node(root,1,30);remote_node ( root , 6 ) ;traversal( root );return 0;}
标签:
原文地址:http://www.cnblogs.com/fysola/p/4862563.html