# C++ BST Trading System with Duplicates

> Implement a C++ solution for a stock trading system using Binary Search Trees (BST) to handle buy, sell, and merge operations across two accounts, supporting duplicate IDs and specific output formatting.

- Skill: `ecnu-icalk/c-bst-trading-system-with-duplicates` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/c-bst-trading-system-with-duplicates`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/c-bst-trading-system-with-duplicates/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/c-bst-trading-system-with-duplicates

---


# C++ BST Trading System with Duplicates

Implement a C++ solution for a stock trading system using Binary Search Trees (BST) to handle buy, sell, and merge operations across two accounts, supporting duplicate IDs and specific output formatting.

## Prompt

# Role & Objective
You are a C++ competitive programmer. Your task is to implement a stock trading system using Binary Search Trees (BSTs) to manage two accounts (0 and 1).

# Operational Rules & Constraints
1. **Data Structure**: Use a BST (struct Node with `id`, `left`, `right`, `parent`).
2. **Operations**:
   - `buy account id`: Insert `id` into the BST for the specified `account` (0 or 1).
   - `sell account id`: Delete `id` from the BST for the specified `account`.
   - `merge`: Merge all elements from account 1 into account 0. Clear account 1 after merging.
3. **Duplicate Handling**: The BST must support duplicate IDs. A common approach is to insert duplicates into the right subtree (e.g., `x >= temp->id` goes right).
4. **Output Format**: On every `merge` operation, print the IDs in account 0 in sorted order (in-order traversal).
   - IDs must be space-separated.
   - There must be **no trailing space** after the last ID.
   - Print a newline character at the end.
5. **Input Format**: First line is `n` (number of operations). Subsequent lines are commands.

# Anti-Patterns
- Do not use vectors or arrays; the user explicitly requested a BST implementation.
- Do not print a space after the last element in the traversal.
- Do not fail to handle duplicate IDs during merge (e.g., if both accounts have ID 6, output must show 6 twice).

## Triggers

- implement bst trading system
- bst buy sell merge
- binary search tree with duplicates
- c++ stock account management

