按广义表表示二叉树结构生成二叉链表的算法

bintnode* createtree(char* str) {
    bintnode* st[100];
    bintnode* p = NULL;
    int top, k, j = 0;
    top = -1;
    char ch = str[j];
    bintnode* b = NULL;
    while (ch != '\0') {
        switch (ch) {
        case'(':top++; st[top] = p; k = 1; break;
        case')':top--; break;
        case',':k = 2; break;
        default:p = (bintnode*)malloc(sizeof(bintnode));
            p->data = ch;
            p->lchild = p->rchild = NULL;
            if (b == NULL)
                b = p;
            else {
                switch (k) {
                case 1:st[top]->lchild = p; break;
                case 2:st[top]->rchild = p; break;
                }
            }
        }
        j++; ch = str[j];
    }
    return b;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容