1. 程式人生 > >二叉樹的C語言實現

二叉樹的C語言實現

二叉樹的 先序,中序,後序

#include<iostream>
using namespace std;
struct Node{
    int value;
    Node *left, *right;
};
class BT{
public:
    Node *root;
    BT(){
        root = NULL;
    }
    void insert(int value){
        if (root == NULL){
            root = new Node;
            root->value = value;
            root->left = NULL;
            root->right = NULL;
        }
        else
{ Node *current = root; while (1){ if (value < current->value){ if (current->left == NULL){ current->left = new Node; current->left->value = value; current->left->left = NULL; current->left->right = NULL; break
; } else{ current = current->left; continue; } } else{ if (current->right == NULL){ current->right = new Node; current->right->value = value; current->right->left = NULL; current->right->right = NULL; break
; } else{ current = current->right; continue; } } } } } void inorder(Node *current){ if (current == NULL) return; inorder(current->left); cout << current->value << "\t"; inorder(current->right); } void preorder(Node *current){ if (current == NULL) return; cout << current->value << "\t"; preorder(current->left); preorder(current->right); } void postorder(Node *current){ if (current == NULL) return; postorder(current->left); postorder(current->right); cout << current->value << "\t"; } }; int main(){ int mylist[] = { 4, 3, 1, 5, 8, 2 }; BT *mytree = new BT(); for (int i = 0; i < 6; i++){ mytree->insert(mylist[i]); } mytree->inorder(mytree->root); cout << endl; mytree->preorder(mytree->root); cout << endl; mytree->postorder(mytree->root); char a; cin >> a; }

一個隨機生成字母的c程式碼

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,n;
    printf("輸入字串長度:");
    scanf("%d",&n);

    char *buffer=(char*)malloc(n+1);
    if (buffer==NULL) exit(1);
    for (i=0;i<n;i++)
        buffer[i]=rand()%26+'A';
    buffer[n]='\0';
    printf("隨機生成的字串為:%s\n",buffer);
    free(buffer);
    system("pause");

    return 0;
}