CS124 is one of the most notorious courses offered at Harvard which is skipped by many Extension School students for its difficulty. I'll try to explain how to properly prepare for it - it doesn't mean that you'll get an A after doing everything in this post, but you're much more likely to understand over 99% of the class and learn much more.
Even though it's official name is "Data Structures and Algorithms", it should really be called "Design and Analysis of Algorithms". The class is extremely math-y (even people from math department occasionally complain) and doesn't involve a lot of programming (depends on the instructor, though). The official prerequisites for CS124 are CS51 and CS20, which is typically enough to pass though CS124, but not always to succeed unless you're one of the smart and bright students from College.
CS20 (or any class/MOOC covering the same topics) is definitely a hard prerequisite for three reasons: first, you must be comfortable with proofs when you come to CS124. Don't try to learn proving things at the same time - a very bad idea. If you had some proof experience before from abstract algebra or other math classes, you'll probably struggle for the first 2-3 weeks and then be fine; yet, I recommend practicing problems from discreet math domain because they're more useful in Algorithms and the transition will be much easier. The second reason is actually discreet math. This one is not as essential as proofs because you can pick it up along the way, but again, if you want to concentrate on learning algorithms and not re-watch every lecture multiple times, know discrete math in advance. The third reason is the knowledge of discreet probability which is used in CS124 relatively often (again depends on the instructor). CS20 covers that enough for you to understand everything in CS124. It's possible to learn probability on your own if you've taken into statistics class before (read Stat-100), but again a bad idea to start from scratch while taking CS124.
CS51, which often is not that popular among HES students, covers functional programming and persistent data structures (lists, trees, heaps, streams) which you must know before CS124 because it will discuss a bunch of optimizations and theory behind them. You do not really need to know functional programming, but solid understanding of recursion which you'll have after CS51 is invaluable in CS124.
Now, there's a problem with both CS20 and CS51. CS20 is taught using live blackboard conference and isn't suitable for everyone for different reasons: time zone difference, difficulty to convey a good proof using blackboard drawing tools, desire to watch the real 1,5 hour lecture with blackboard and chalk explanations rather than 10min shorts by Harry Lewis with slides. I faced all of those issues and dropped CS20 after week 1. If you're in a similar situation, check Berkeley's CS70 recorded lectures on YouTube which I personally have found recently and have been filling the gaps in my discreet math knowledge. They cover everything from CS20 and even more. Next, CS51 is a wonderful class, but it's focused on functional programming and it skips how you build similar structures in procedural languages or mutable data structures for solving problems. There's another recorded Berkeley course that I recommend studying - CS61b, data structures, which first introduces java given that you know some programming language and then covers data structures from basic sequences to graphs (CS51 doesn't cover graphs at all). Along the way CS61b also covers good OO design practices for java. The class is similar to CSCIE-22, but involves twice as many cool programming assignments (especially look at archived projects), which I personally think is great to practice data structures and algorithms while solving some interesting problems. The unfortunate things about CS70 and CS61b is that nether of them are MOOCs, so you have to watch lectures on YouTube, check official course web sites for homework/projects and will not get any feedback/solutions.
Optional: If you enjoy solving problems for fun and want to code more advanced algorithms which you'll cover in CS124, take a look at Princeton's Coursera MOOC Algorithms part2. The course covers first part of CS124 but focuses on programming part rather than math concepts. I guess CS124 will become more digestible after you've coded something even without understanding deep math behind that. Once again, part2 of Algorithms has a huge overlap with first part of CS124, so it's totally optional.
TL;DR: to be ready for CS124, take CS20 and CS51; it's your bare minimum to be prepared for one of the most challenging CS classes at Harvard; both are offered in spring. In case you want a better preparation, self study CS70 while taking CS20 or after it and during summer study CS61b which you're very likely to enjoy and learn Java (I assume you've taken CS50 and not CS10ab/CS22).