ডেটা স্ট্রাকচার নিয়ে সমস্যা কি নতুনদের জন্য সাধারণ? [বন্ধ]


17

আমি জাভাতে আমার দ্বিতীয় কোর্স নিচ্ছি আমরা তথ্য স্ট্রাকচার মধ্যে পেয়ে যাচ্ছি। আমি একটি লিঙ্কযুক্ত তালিকায় একটি কার্য সম্পাদন করেছি এবং এখন একটি স্ট্যাক। লিঙ্কযুক্ত তালিকার সাথে আমার বেশ কষ্ট হয়েছিল। স্ট্যাকটি আমাকে একটু সমস্যা দিয়েছে, তবে এটি অনেক সহজ ছিল।

এই অ্যালগোরিদম এবং ডেটা স্ট্রাকচারের সাথে কি খুব কঠিন সময় কাটাতে হবে তা নিয়ে আমার চিন্তিত হওয়া উচিত? আমার মনে হয় আমি সত্যিই এটি ধরতে পারি নি।


লিঙ্ক তালিকা বাস্তব জগতে উদাহরণ - stackoverflow.com/questions/644167/...
pramodc84

উত্তর:


44

আমি মনে করি, আপনি অবশ্যই এই বিষয়গুলি বুঝতে না পেরে গ্রহণ করবেন না, কারণ এগুলি সত্যই মৌলিক। বলা হচ্ছে, আপনার সেগুলি বোঝা আপনার খারাপ লাগার মতো কিছু নয়। আপনি কোনও সন্তানের সাথে একটি লিঙ্কযুক্ত তালিকা ব্যাখ্যা করতে পারেন। সুতরাং যদি আপনার শিক্ষক আপনাকে সেগুলি বোঝাতে ব্যর্থ হন তবে এটি ততটাই তাদের দোষ। সুতরাং আপনার দুশ্চিন্তা করার সময় ব্যয় করা উচিত নয়, বরং এমন লোকদের খোঁজার চেষ্টা করুন, যারা আপনাকে এটি ব্যাখ্যা করতে পারে। প্রায়শই একজন সহপাঠী শিক্ষার্থী পূর্ণ-সময়ের একাডেমিকের চেয়ে অনেক বেশি ভাল শিক্ষক।

ট্রেনগুলির কথা চিন্তা করুন

কল্পনা করুন, আপনার এক সেট রেল গাড়ী রয়েছে, যেখানে প্রতিটি গাড়ীর পর্যাপ্ত ক্ষমতা রয়েছে, এতে এক টুকরো ডেটা থাকে। প্রতিটি গাড়ীর শেষে কিছু প্রকারের হুক থাকে, যা অন্য গাড়ীর সামনের অংশের সাথে সংযুক্ত করা যেতে পারে।
বাস্তবে এটি আপনাকে একটি লিঙ্কযুক্ত তালিকা দেয়:

  • খালি তালিকা: ট্রেনের কোনও গাড়ি নেই (এবং তাই কোনও ডেটা বহন করে না)
  • একটি উপাদান যুক্ত করুন: ট্রেনের সামনে উপাদান যুক্ত একটি নতুন গাড়ি যুক্ত করুন এবং এটিকে ট্রেনের বাকী অংশে রেখে দিন
  • একটি উপাদান অপসারণ: উপাদানযুক্ত গাড়ী খুঁজে। এটি সরান (আপনার এখানে একটি ক্রেনের প্রয়োজন হতে পারে :)), পরে গাড়ি চালানোর আগে গাড়িটি হুক করুন।
  • কোনও উপাদান প্রতিস্থাপন করা: পুরানো উপাদানযুক্ত গাড়িটি সন্ধান করুন। পুরানো উপাদানটি নতুন উপাদান দিয়ে বিনিময় করুন।
  • একের পর এক উপাদান সন্নিবেশ করানো: আপনি যে উপাদানটি পরে sertোকাতে চান সেগুলি সহ গাড়ীর সন্ধান করুন। এর পরে একটি নতুন গাড়ি sertোকান, যা সেই অনুযায়ী আবদ্ধ হয় (আমরা ট্রেনটি ভেঙে পড়তে চাই না) এবং এতে নতুন উপাদানটি intoুকিয়ে দিন।

এর বিপরীতে, আপনি প্রদত্ত সংখ্যক গাড়িবাহী ট্রেন হিসাবে একটি অ্যারের কথা ভাবতে পারেন, এটি কোনওভাবেই পুনরায় সাজানো যায় না। আপনি যা করতে পারেন তা হ'ল তাদের মধ্যে ডেটা পরিবর্তন করা। এই মডেলটি অ্যারেগুলির অনেকগুলি সমস্যাও ব্যাখ্যা করে:

  • আপনি যদি অন্যটির আগে একটি উপাদান toোকাতে চান তবে আপনাকে নীচের সমস্ত উপাদানগুলি পরের গাড়িতে নিয়ে যেতে হবে।
  • আপনি যদি একটি উপাদান মুছতে চান তবে আপনাকে নীচের সমস্ত উপাদানকে একটি গাড়িকে সামনের দিকে নিয়ে যেতে হবে।
  • আপনার যদি আরও বেশি গাড়ি নিয়ে একটি ট্রেনের দরকার হয় তবে আপনাকে একটি নতুন তৈরি করতে হবে, কারণ আপনি কেবল একটি গাড়ি চালাতে পারবেন না। অন্যদিকে, একটি অ্যারেতে গাড়ি সন্ধান করা অনেক সহজ, কারণ আপনি কেবল তাদের স্থায়ীভাবে সংখ্যা করতে পারেন (তাদের ক্রমটি কখনই পরিবর্তিত হবে না)।

স্ট্যাকের ক্ষেত্রে: একটি "স্ট্যাক" একটি ধারণার চেয়ে কোনও ডেটা স্ট্রাকচারই কম। স্ট্যাকের ধারণাটি হ'ল এটি অনেকটা বইয়ের স্তুপের মতো কাজ করে। আপনি কেবল স্ট্যাকের উপরে বই রাখতে পারেন এবং আপনি কেবল কখনই শীর্ষ বইটি স্ট্যাকের বাইরে নিতে পারেন (কমপক্ষে বইগুলি যথেষ্ট ভারী হলে)।
বলা হচ্ছে, একটি লিঙ্কযুক্ত তালিকাকে স্ট্যাক হিসাবে ব্যবহার করা যেতে পারে, যদি আপনি গাড়িবদ্ধের ডেটাগুলি বই হিসাবে এবং স্ট্যাকের শীর্ষ হিসাবে প্রথম সর্বাধিক গাড়ীর বইয়ের কথা মনে করেন।

সুতরাং আমি আশা করি এটি আপনাকে সহায়তা করেছে। হতে পারে না। হতে পারে আপনি ভিজ্যুয়াল টাইপের আরও বেশি। সেক্ষেত্রে আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি এমন কাউকে সন্ধান করুন, যিনি চাক্ষুষের ব্যাখ্যা দিতে ভাল এবং এটি আপনাকে ব্যাখ্যা করতে। এটি বেশি সময় নিবে না, তবে এটি একেবারেই উপযুক্ত হবে।

এখনই এটির সাথে লড়াই করা ঠিক আছে। তবে নিছক এটি গ্রহণ করা, দীর্ঘকালীন কোনও বিকল্প নয়।


2
শীতল উত্তর! আমাকে উপলব্ধি করিয়েছে যে কেউ একটি ফ্ল্যাশ / অন্যান্য গেমের মাধ্যমে বাচ্চাদের মৌলিক ডেটা স্ট্রাকচারগুলি শিখিয়ে দিতে পারে যা বেশ কয়েকটি লক্ষ্য সম্পন্ন করে। ট্রেনগুলির একই ধারণা বাচ্চাদের বাইনারি সংখ্যাগুলি উপলব্ধ করতে সহায়তা করতে পারে, যদি প্রতিটি ট্রেনের গাড়ি তার প্রতিবেশীর চেয়ে 2x বেশি বড় এবং ছোট হয়।
চাকরী

1
ঠিক আছে, এখন আপনি এটি পেয়ে গেছেন, আসুন একাধিক লিঙ্ক সহ ডেটা স্ট্রাকচারে এগিয়ে চলুন। সুতরাং ট্রেনটি এর পাশের একটি বাঁধা আছে, যা অন্য একটি গাড়ীর সেটগুলিতে যেতে পারে। তবে এই ট্র্যাকগুলির জন্য রেলটি প্রথম ট্র্যাকের পাশের ধরণের স্লাইড ...
ফিলিপ

12

আমি এটি বলব না যে এটি সম্পর্কে আপনার "চিন্তিত হওয়া উচিত", তবে আপনি যে দুর্বল বিষয়গুলি স্বীকার করেছেন তার সরল সত্যটি প্রমাণ করে যে আপনি কোথায় কঠোরভাবে অধ্যয়ন করবেন ঠিক তা জানেন know আমি মনে করি আপনি সেই মনোভাবের দ্বারা ভালভাবে পরিবেশিত হবেন এবং দীর্ঘকালীন সময়ে ঠিক থাকবেন।


6

আমার ফেভারিট সিএসসিআই শিক্ষককে উদ্ধৃত করতে:

"Panic, but panic early."

ডেটা স্ট্রাকচার শক্ত লাগছে, তাইনা? আমার কাছে এটি মনে হয়, এটি বিমূর্ত এবং কিছুটা জটিল এবং সর্বোপরি ... গুরুত্বপূর্ণ!

ডেটা স্ট্রাকচার একটি গুরুত্বপূর্ণ কোর্স। এবং লড়াই করা সাধারণ, তবে চালিয়ে যান! যতক্ষণ আপনি নিজের হুইটিস খাবেন এবং এটিকে চালিয়ে যাবেন ততক্ষণ আপনি নীচে bagভরা রামধনুতে পৌঁছে যাবেন generic items


আতঙ্ক কি তাড়াতাড়ি বাদ পড়তে হবে? ডেটা স্ট্রাকচারের পরে গণিতের প্রয়োজনীয়তা, অ্যালগরিদম, ওএস, এআই, সংকলক, গণনার তত্ত্বও রয়েছে ... এটি কোনও মাতৃ-ফ্রেইক সহজেই পায় না, তবে সম্ভবত এটি সত্য যে কোনও ব্যক্তি এখন আর নতুন বা শৈশবক থেকেও সহায়তা করে না যদিও স্টাফ শক্ত হচ্ছে।
চাকরী

3

অন্যান্য উত্তর খুব ভালো পয়েন্ট, শুধু একটা নোট জুড়তে: আইএমও লিঙ্ক তালিকা মানুষ কারণ তারা নির্মাণ অনেক জন্য যেমন স্ট্যাকগুলি চেয়ে আরো কঠিন হতে পারে অপ্রত্যক্ষ্যতার (মাধ্যমে প্রকাশ রেফারেন্স / পয়েন্টার )। এবং এই অন্তর্নিহিত ধারণাগুলি উপলব্ধি করা কঠিন হতে পারে


3

ডেটা স্ট্রাকচারগুলি প্রথম "হার্ড" ক্লাস নিয়েছিলাম; আমরা জাভার পরিবর্তে ফোর্টরান 77 ব্যবহার করেছি তবে ধারণাগুলি মূলত একই রকম।

একটি লিঙ্কযুক্ত তালিকার ধারণাটি আঁকতে আমার সহপাঠীর চেয়ে আমার এক সপ্তাহ বেশি সময় লেগেছে; আমি অ্যাসাইনমেন্টটি ধমক দিয়েছি, কিন্তু আমার অধ্যাপকের সাথে কয়েকটা হতাশার সেশনের পরে অবশেষে এটি ক্লিক করেছে (আক্ষরিক; আমি অবশেষে বুঝতে পারলে আমার মাথায় একটি "ক্লিক" শুনেছি)।

প্রত্যেকেরই তাদের সিএস পাঠ্যক্রমের কোথাও সমস্যা আছে (যদি না তারা ফ্রিক না থাকে)। আপনার দুর্বলতাগুলি কোথায় এবং সেগুলি কীভাবে সমাধান করবেন তা যদি আপনি বুঝতে পারেন তবে আপনার সত্যিই উদ্বিগ্ন হওয়ার কিছু নেই।


1
আতঙ্কিত হবেন না, কাজ চালিয়ে যান এবং ক্লিকের জন্য অপেক্ষা করুন ...
এনডাব্লুএস

2

লিঙ্কযুক্ত তালিকাটি বুঝতে আপনার সমস্যা হয়েছে, বা কেবলমাত্র আপনার প্রয়োগে সমস্যা হয়েছে?

এটা তোলে অস্বাভাবিক একটি নতুন প্রোগ্রামার সেখানে অসুবিধা আছে করার জন্য নয়, কারণ এটি প্রথমবার আপনি কি এটা সম্পর্কে চিন্তা করতে হবে হতে পারে সত্যিই মানে যখন আপনি লিখুন:

list.head = null;
Element e = new Element(...);
e.next = list.head;
list.head = e;

আমি একই ব্যায়ামে ALGOL / W এ সমস্ত বিভক্ত হয়ে পড়েছিলাম, কারণ আমি ভাষা শব্দার্থবিজ্ঞানটি বেশ বুঝতে পারি নি। এক বছর পরে, কেন আমার অসুবিধা হয়েছিল আমি খুব কমই মনে করতে পারি।


1

সফ্টওয়্যার বিকাশের এমন কিছু ক্ষেত্র হতে হবে যা আপনি অন্যের চেয়ে শক্ত মনে করেন। এটি নির্দিষ্ট অ্যালগরিদম, বা নির্দিষ্ট নকশার নিদর্শন বা নির্দিষ্ট পদ্ধতিগুলি ব্যক্তি থেকে পৃথক পৃথক হতে পারে। আমি দেখতে পেয়েছি যে পুরোপুরি বোঝার আগে আমাকে একটি বাস্তব প্রোগ্রামে কিছু ব্যবহার করতে হবে।

কেউ যদি সমস্ত কিছু জানার জন্য দাবি করে থাকে এবং কখনও কিছু শিখতে সমস্যা না হয় তবে আমি আরও উদ্বিগ্ন হব।

ব্যক্তিগতভাবে আমি কখনও লিঙ্কযুক্ত তালিকার সমস্যা বলে মনে করি নি, তবে আমি এমন একটি প্রোগ্রামে 8 বছর ধরে কাজ করেছি যা এগুলি সর্বত্র ব্যবহার করেছে তাই আমি প্রতিদিনের সাথে তাদের সাথে কাজ করছি। যতক্ষণ আপনি নিজের স্মৃতি সতেজ করার জন্য প্রয়োজনীয় তথ্য কোথায় পাবেন এবং যে জায়গাগুলিতে আপনার "সমস্যা" রয়েছে সেগুলি জানতে আপনার ঠিক হওয়া উচিত।


আমি আরও মনে করি যে আমি যদি এমন কোনও প্রোগ্রামের সাথে ইন্টারেক্ট করতে পারি যা এই ডেটা স্ট্রাকচারগুলিও ব্যবহার করে। আমি যেখানে নিজেকে জিজ্ঞাসা করছি সেই পর্যায়ে আমি কেন এগুলি কার্যকর হবে?
ব্রুক 17

0

ক্যালকুলাস নিয়ে আমার সমস্যা হয়েছিল এবং এটি দ্বিতীয়বার নিতে হয়েছিল। দ্বিতীয়বার আমি আবিষ্কার করলাম আমি স্মার্ট কিন্তু প্রথম গণিতের শিক্ষকটি মূলত অকেজো :)

আপনি তথ্যপ্রযুক্তিতে এমন অনেক লোককে সন্ধান করতে যাচ্ছেন যারা ভাল যোগাযোগ করতে পারবেন না, এমনকি শিক্ষকও। অন্যদিকে আইটি-র কিছু লোক সত্যই দুর্দান্ত লেখক এবং মাস্টার যোগাযোগকারী।

কখনও কখনও বাইরের পড়া সত্যিই সাহায্য করতে পারে। কম্পিউটার বইগুলি মানের দিক থেকে প্রচুর পরিমাণে পরিবর্তিত হয়। অ্যামাজনে যান এবং দেখুন লোকেরা আসলে কী পছন্দ করে।

শুভকামনা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.