No Heap
```javascript []
/**
 * @param {number[]} vals
 * @param {number[][]} edges
 * @param {number} k
 * @return {number}
 */
var maxStarSum = function (vals, edges, k) {
  const n = vals.length;
  const adj = Array.from({ length: n }, () => []);

  for (const [u, v] of edges) {
    adj[u].push(vals[v]);
    adj[v].push(vals[u]);
  }

  let maxSum = -Infinity;

  for (let i = 0; i < n; i += 1) {
    const topNeighbors = adj[i]
      .filter((val) => val > 0) // Only consider positive neighbors
      .sort((a, b) => b - a) 
      .slice(0, k); 

    const starSum = vals[i] + topNeighbors.reduce((a, b) => a + b, 0);
    maxSum = Math.max(maxSum, starSum);
  }

  return maxSum;
};
```
['Array', 'Greedy', 'Graph', 'Sorting', 'JavaScript']