[Powered by Google Translate] [విభాగం 6: తక్కువ సౌకర్యవంతమైన] [నేట్ Hardison] [హార్వర్డ్ విశ్వవిద్యాలయం] [ఈ CS50 ఉంది.] [CS50.TV] అన్ని కుడి. విభాగం 6 స్వాగతం. ఈ వారం, మేము, విభాగంలో డేటా నిర్మాణాలు గురించి మాట్లాడటం కావడం చేస్తున్నారు ఈ వారం యొక్క సమస్య మీద spellr సెట్ ప్రధానంగా వివిధ డేటా నిర్మాణం అన్వేషణ యొక్క మొత్తం బంచ్ చేస్తుంది. మీరు సమస్య సమితి వెళ్ళి వేర్వేరు మార్గాలను కొంత ఉన్నాయి మరియు మీరు గురించి మరింత డేటా నిర్మాణాలు, మీరు చేయవచ్చు మరింత మంచి విషయాలు. కాబట్టి యొక్క ప్రారంభించడానికి అనుమతిస్తాయి. మొదటి మేము, స్టాక్స్ గురించి మాట్లాడటానికి వెళుతున్న మేము మాట్లాడటానికి చూడాలని ఉద్దేశ్యంతో స్టాక్ మరియు క్యూ డేటా నిర్మాణాలు. మేము గ్రాఫ్లు గురించి మాట్లాడటం ప్రారంభించినప్పుడు స్టాక్స్ మరియు క్యూలు, నిజంగా సహాయకరమైతేనే మేము ఇప్పుడు హక్కు చాలా చేయబోవడం లేదు ఇది. కానీ వారు CS యొక్క పెద్ద ప్రాథమిక డేటా నిర్మాణాలు అర్థం మంచి ఉన్నాము. సమస్య సెట్ వివరణలో వివరణ, వంటిదని స్టాక్స్ గురించి మీరు పుల్ అప్ ఉంటే, చర్చలు మీరు ఆహారశాలలు వద్ద ఫలహారశాల కలిగి భోజన ట్రేలు యొక్క కుప్ప భోజన సిబ్బంది వచ్చి వారు వాటిని శుభ్రం చేసిన తర్వాత, భోజన ట్రేలు ఉంచుతారు అక్కడ వారు వాటిని ఇతర ఒకటిగా పేర్చడాన్ని. మరియు తర్వాత పిల్లలు, ఆహారం పొందడానికి వచ్చినప్పుడు వారు మొదటి టాప్ ఒకటి, ట్రేలు ఆఫ్ పుల్, అది క్రింద ఒక, ఆ క్రింద ఒక. కాబట్టి, ప్రభావం లో, భోజన సిబ్బంది అణిచివేసేందుకు ఆ మొదటి ట్రే నుండి తొలగించబడింది పొందే చివరి ఒకటి. భోజన సిబ్బంది మీద పెట్టే చివరి విందు కోసం తొలగించబడింది పొందే మొదటి ఒకటి. మీరు ఇప్పటికే కలిగి ఉంటే సమస్య సెట్ యొక్క వివరాలను, మీరు, ఇది డౌన్లోడ్ చేసుకోవచ్చు మేము ఈ రకమైన struct ఉపయోగించి స్టాక్ డేటా stucture నమూనా గురించి మాట్లాడండి. కాబట్టి మేము ఇక్కడ మేం ఏమి, ఈ, ఉపన్యాసంలో సమర్పించారు ఏ పోలి ఉంటుంది ఉపన్యాసంలో తప్ప మేము చార్ * s వ్యతిరేకంగా ints ఈ అందించింది. ఈ దుకాణాల్లో ఏమి ఒక స్టాక్ ఉండబోతుంది? డేనియల్? మేము ఈ స్టాక్ లో ఏం నిల్వ ఉంటాయి? [డేనియల్] స్ట్రింగ్స్? >> మేము ఖచ్చితంగా, ఈ స్టాక్ లో తీగలను నిల్వ ఉంటాయి. మీరు ఒక స్టాక్ సృష్టించడానికి అవసరం అన్ని ఒక శ్రేణి ఒక నిర్దిష్ట సామర్ధ్యం, ఈ సందర్భంలో ఇది, సామర్థ్యం అది స్థిరమైన ఎందుకంటే అన్ని CAPS లో అన్నారు. ఆపై శ్రేణి అదనంగా, మేము ట్రాక్ ఏమిటంటే శ్రేణి యొక్క ప్రస్తుత పరిమాణం. ఆ చల్లని రకంగా ఇక్కడ గమనించదగ్గ విషయం ఒకటి మేము మరొక డేటా నిర్మాణం, అర్రే ఒకటిగా అమర్చినట్లు డేటా నిర్మాణం ఏర్పడుతుంది చేస్తున్న ఉంది. స్టాక్స్ అమలు వివిధ మార్గాలు ఉన్నాయి. మేము, కానీ ఆశాజనక అనుసంధాన-జాబితా సమస్యలు చేసిన తర్వాత, చాలా ఇంకా అది చేయరు మీరు సులభంగా అలాగే అనుబంధ జాబితా పైన స్టాక్ అమలు ఎలా చూస్తారు. కానీ ఇప్పుడు కోసం, మేము శ్రేణుల అంటుకుని ఉంటుంది. మరలా, మేము అవసరం అన్ని ఒక శ్రేణి మరియు మేము కేవలం శ్రేణి యొక్క పరిమాణం ట్రాక్ అవసరం. [సామ్] క్షమించాలి, ఎందుకు మీరు స్టాక్ తీగల యొక్క అగ్ర చెప్పారు ఉంది? తీగలను స్టాక్ లోపల లాగ నాకు అది తెలుస్తుంది. [Hardison] అవును. మేము మా శ్రేణి డేటా నిర్మాణం వేస్తున్నాము, సృష్టిస్తున్నారు - ఒక గొప్ప ప్రశ్న. కాబట్టి ప్రశ్న, ఈ ఆన్లైన్ చూడటం వ్యక్తులు కోసం, ఎందుకు ఎందుకు మేము, స్టాక్ తీగలను పైన అని అంటున్నారు ఇక్కడ అది తీగలను స్టాక్ లోపల లేనట్లు? ఎందుకంటే ఏ పూర్తిగా విషయం. నేను ఈ విధంగా సూచించింది మేము వ్యూహం డేటా నిర్మాణం పొందారు ఉంది. మేము చార్ * s యొక్క వ్యూహం, తీగల యొక్క ఈ శ్రేణి, పొందారు మరియు మేము అమర్చినట్లు డేటా నిర్మాణం సృష్టించడానికి ఆ జోడించడానికి వెళ్తున్నారు. కాబట్టి ఒక స్టాక్ వ్యూహం కంటే కొద్దిగా క్లిష్టమైన ఉంది. మేము ఒక స్టాక్ నిర్మించడానికి వ్యూహం ఉపయోగించవచ్చు. మేము స్టాక్ వ్యూహం పై నిర్మించబడిన ఉంటుంది అని పేరు కాబట్టి ఆ. అలాగే, నేను ముందు చెప్పారు వంటి, మేము ఒక లింక్ జాబితా పైన స్టాక్ నిర్మించవచ్చు. బదులుగా మా అంశాలను పట్టుకుని వరుసను ఉపయోగించి యొక్క, మేము మా అంశాలను కలిగి మరియు చుట్టూ స్టాక్ నిర్మించడానికి అనుబంధ జాబితా ఉపయోగించవచ్చు. కొన్ని కోడ్ చూడటం, యొక్క ఉదాహరణలలో ఒక జంట నడవడానికి లెట్ నిజానికి ఇక్కడ ఏం చూడటానికి. ఎడమ వైపు, నేను ఆ స్టాక్ struct మెమరీ ఎలా ఏ డౌన్ విసిరి చేసిన సామర్థ్యం # నాలుగు అని నిర్వచించారు ఉంటే. మేము మా నాలుగు మూలకం చార్ * శ్రేణి పొందారు. మేము తీగలను [0], తీగలు [1], తీగలు [2], తీగలు [3], పొందారు తరువాత మా పరిమాణం పూర్ణాంక కోసం చివరి స్పేస్. ఈ కోణంలో రాబడుతుంది? సరే. ఈ నేను ఏమి ఏమి, జరిగినప్పుడు ఉంది నా కోడ్ ఉంటుంది, ఇది కేవలం ఒక struct, s అనే అమర్చినట్లు struct ప్రకటించాలని ఉంది. ఈ మేము పొందుతారు. ఇది మెమరీ ఈ పాదముద్ర డౌన్ సూచిస్తుంది. ఇక్కడ మొదటి ప్రశ్న ఈ స్టాక్ struct విషయాలు ఏమి ఉంది? ప్రస్తుతం వారు ఏమీ, కానీ వారు పూర్తిగా ఏమీ లేదు. వారు చెత్త ఈ రకమైన ఉన్నారు. మేము ఏ ఆలోచన వాటిలో ఏది కలిగి ఉంటాయి. మేము స్టాక్ s డిక్లేర్ చేసినప్పుడు, మేము కేవలం మెమరీ పైన ఆ డౌన్ విసిరి చేస్తున్నారు. ఇది Int నేను ప్రకటించి మరియు ప్రారంభించడం లేదు వంటి రకమైన ఉంది. మీరు అక్కడ ఏమి తెలియదు. మీరు, అక్కడ లో చదవగలరు కానీ ఉపయోగపడిందా సూపర్ కాదు. మీరు ఎల్లప్పుడూ చేయడానికి గుర్తు విషయం initialized అవసరం ఏ ప్రారంభించడం ఉంది. ఈ సందర్భంలో, మనం, సున్నా పరిమాణం ప్రారంభించడం వెళుతున్న మాకు చాలా ముఖ్యమైన పరిణమించవచ్చు వెళుతున్న ఎందుకంటే. మేము ముందుకు వెళ్లి గమనికలు అన్ని అన్ని చార్ * s, ప్రారంభించడం కాలేదు బహుశా శూన్య కొన్ని అర్థం విలువ, అని. కానీ మేము అలా ఆ పూర్తిగా అవసరమైన కాదు. ఇప్పుడు, స్టాక్స్ రెండు ప్రధాన కార్యకలాపాలు ఉంటాయి? మిమ్మల్ని ఎవరైనా స్టాక్స్ ఏం ఉపన్యాసం నుండి గుర్తు? అవును? [స్టెల్లా] పుషింగ్ మరియు పాపింగ్? ఖచ్చితంగా >>. పుషింగ్ మరియు పాపింగ్ స్టాక్స్ రెండు ప్రధాన కార్యకలాపాలు ఉంటాయి. మరియు పుష్ ఏమి చేస్తుంది? >> ఇది టాప్ లో ఏదో ఉంచుతుంది స్టాక్, మరియు అప్పుడు పాపింగ్ ఇది ఆఫ్ పడుతుంది. [Hardison] ఖచ్చితంగా. కాబట్టి నెట్టడం స్టాక్ పైన ఏదో నెడుతుంది. ఇది కౌంటర్ ఒక డైనింగ్ ట్రే తీసిపారేయటం భోజన సిబ్బంది వంటిది. మరియు పాపింగ్ స్టాక్ యొక్క భోజన ట్రే ఆఫ్ తీసుకుంటోంది. లెట్ యొక్క ఏమి ఉదాహరణలు రెండు నడవడానికి మేము స్టాక్ను విషయాలు పుష్ ఉన్నప్పుడు. మేము మా స్టాక్ లో స్ట్రింగ్ 'హలో' పుష్ ఉన్నట్లయితే, ఈ మా రేఖాచిత్రం ఇప్పుడు ఎలా ఏ ఉంది. ఏమి చూడండి? మేము మా తీగలను శ్రేణి యొక్క మొదటి మూలకం నెట్టడం మరియు మేము 1 అని మా పరిమాణం COUNT upped. మేము రెండు స్లయిడ్లను మధ్య వ్యత్యాసం చూడండి అయితే, ఇక్కడ 0 చేశారు, ఇక్కడ పుష్ ముందు. ఇక్కడ పుష్ తరువాత. పుష్ ముందు, పుష్ తరువాత. ఇప్పుడు మేము మా స్టాక్ లో ఒక మూలకం ఉంది. ఇది స్ట్రింగ్ "హలో", మరియు అంతే. అర్రే లో మిగతావన్ని, మా తీగలను శ్రేణిలో, ఇప్పటికీ చెత్త ఉంది. మేము initialized లేదు. లెట్ యొక్క మేము మా స్టాక్ లో మరొక స్ట్రింగ్ పుష్ చెప్పారు. మేము ఈ సమయం "ప్రపంచం" పుష్ చూడాలని. కాబట్టి మీరు, "ప్రపంచం" ఇక్కడ "హలో" పైన వెళుతుంది చూడగలరు మరియు పరిమాణం COUNT 2 వరకు వెళుతుంది. ఇప్పుడు మేము "CS50", మరియు ఆ మళ్ళీ టాప్ కొనసాగుదాం వస్తాయి. మేము తిరిగి వెళ్లి, మీరు మేము స్టాక్ పైన విషయాలు నెట్టడం అయ్యారో చూడవచ్చు. ఇప్పుడు మేము పాప్ పొందండి. మేము స్టాక్ ఏదో ఆఫ్ popped చేసినప్పుడు, ఏమి జరిగింది? ఎవరైనా తేడా చూడండి? ఇది చాలా సున్నితమైన ఉంది. [స్టూడెంట్] పరిమాణం. >> అవును, పరిమాణం మార్చబడింది. ఏమి మీరు భావిస్తున్నారు ఉంది? చాలా [స్టూడెంట్] తీగలు. >> కుడి. చాలా తీగలు. ఇది అవుతుంది మీరు దానిని ఈ విధంగా చేయడం చేసినప్పుడు, మేము మా స్టాక్ను అంశాలను కాపీ లేదు ఎందుకంటే, మేము నిజంగా ఏమీ లేదు; మేము పరిమాణం ఉపయోగించవచ్చు మా పరిధిలో విషయాలు సంఖ్య ట్రాక్ కాబట్టి మేము మళ్ళీ పాప్ ఉన్నప్పుడు, మళ్ళీ మేము కేవలం 1 మా పరిమాణం డౌన్ తరుగుదల. వాస్తవానికి లో వెళ్ళి ఏదైనా ఓవర్రైట్ లేదు. అల్లరిగా రకం. ఇది చేయడానికి తక్కువ పని ఎందుకంటే మేము సాధారణంగా కేవలం ఒక్క విషయాలు విడిచి అవుతుంది. మేము తిరిగి వెళ్లి ఏదో ఓవర్రైట్ లేదు, అప్పుడు ఎందుకు చేయాలి? కాబట్టి మేము స్టాక్ రెండుసార్లు పాప్ ఉన్నప్పుడు, చేసే అన్ని పరిమాణం సార్లు రెండు తరుగుదల ఉంటుంది. మరియు తిరిగి, ఈ మేము మా స్టాక్ను విషయాలు కాపీ లేదు ఎందుకంటే ఉంది. అవును? దుస్తులు. [స్టూడెంట్, అపారదర్శక] >> ఆపై మీరు మళ్లీ ఏదో పుష్ ఏమి జరుగుతుంది? మీరు మళ్ళీ ఏదో పుష్, అది గడిచిపోయింది? ఎక్కడ అది బాసిల్ వెళ్లగలదు? తీగలను [1] లోకి >>? >> కుడి. ఎందుకు అది తీగలను [3] వెళ్ళాలని లేదు? [బాసిల్] ఇది ఏదైనా తీగలను లో ఉందని మర్చిపోయిన కారణంగా [1] మరియు [2]? [Hardison] ఖచ్చితంగా. మా స్టాక్, ముఖ్యంగా, ఇది ఏదైనా పట్టుకుని ఆ "మర్చిపోయాను" తీగలను లో [1] లేదా తీగలను [2], మేము "woot" పుష్ అప్పుడు ఇది తీగలను [1] వద్ద మూలకం ఆ ఉంచుతుంది. ఒక ప్రాథమిక స్థాయి వద్ద, ఎలా ఈ పనులు న ఏ ప్రశ్నలు? [సామ్] ఈ మొత్తం పరంగా, ఏ విధంగా డైనమిక్ కాదు లేదా స్టాక్ పరిమాణం పరంగా? [Hardison] ఖచ్చితంగా. ఈ - పాయింట్ ఈ ఒక డైనమిక్ growning స్టాక్ లేదు అని. ఇది చాలా నాలుగు విషయాలు చాలా, నాలుగు చార్ * s వద్ద, జరపవచ్చని ఒక కుప్ప ఉంది. మేము ఒక ఐదవ విషయం ప్రయత్నించండి మరియు కొట్టాలని ఉంటే, మీరు ఏం చేయాలి ఏమి ఆలోచిస్తాడు? [విద్యార్ధులు అపారదర్శక] [Hardison] ఖచ్చితంగా. జరిగిఉంటుంది ఆ విషయాలను ఉన్నాయి. ఇది బహుశా మేము దానిని బట్టి, తప్పు seg కాలేదు - ఎలా మేము బ్యాక్ ఎండ్ అమలు చేశారు. ఇది తిరిగి రాస్తుంది కాలేదు. ఇది మేము తరగతి లో మాట్లాడారు ఆ బఫర్ ఓవర్ఫ్లో చూపుతుంది. ఏ భర్తీ చేయగలిగే స్పష్టమైన విషయం ఉంటుంది మేము మా స్టాక్ మీద అదనపు విషయం పుష్ ప్రయత్నించాడు ఉంటే? కాబట్టి మీరు ఒక బఫర్ ఓవర్ఫ్లో పేర్కొన్నారు. న రాసి లేదా stomped జరుగుతుందని విషయం కావచ్చు ఏమిటి మేము ఒక అదనపు విషయం పుష్ ప్రయత్నిస్తున్న ద్వారా అనుకోకుండా ముంచివేసింది? ఉంటే [డేనియల్, అపారదర్శక] >> సాధ్యమైన. కానీ ముందుగా, ఏ సంభవిస్తుంది? మేము ఒక నాల్గవ విషయం పుష్ ప్రయత్నించారు ఏం? ఇది కనీసం మేము పొందారు ఈ మెమరీ రేఖాచిత్రం తో, పరిమాణం తిరిగి రాస్తుంది ఉండవచ్చు. సమస్య సెట్ వివరణలో, ఇది మేము నేడు అమలు కావడం ఏమి ఉంది మనం చెయ్యాలనుకుంటున్నారు కేవలం తప్పుడు తిరిగి ఉంటుంది. మా పుష్ పద్ధతి, ఒక బూలియన్ విలువ తిరిగి వెళ్తున్నారు పుష్ సఫలమైతే మరియు బూలియన్ విలువ నిజమైన ఉంటుంది మరియు తప్పుడు స్టాక్ పూర్తి ఎందుకంటే మేము మరింత ఏదైనా పుష్ ఉండదు. యొక్క ప్రస్తుతం ఆ కోడ్ యొక్క కొద్దిగా నడవడానికి లెట్. ఇక్కడ మా పుష్ ఫంక్షన్ ఉంది. ఒక స్టాక్ కోసం మా పుష్ ఫంక్షన్ స్టాక్ పరుగులు చేసి స్ట్రింగ్ లో తీసుకోవాలని అన్నారు. స్ట్రింగ్ విజయవంతంగా వెళ్ళింది అది నిజమైన తిరిగి వెళుతున్న స్టాక్ మరియు తప్పుడు లేకపోతే న. ఏం ఏదైనా సూచనలు ఇక్కడ చేసే మంచి మొదటి విషయం కావచ్చు? పరిమాణం సామర్థ్యం సమానం ఉంటే [సామ్] అప్పుడు తప్పుడు తిరిగి? [Hardison] బింగో. మంచి పని. పరిమాణం సామర్థ్యం ఉంటే, మేము తప్పుడు తిరిగి చూడాలని. మేము మా స్టాక్ మరింత ఏదైనా పెట్టి కాదు. లేకపోతే, మేము స్టాక్ పైన ఏదో ఉంచాలి కావలసిన. ప్రారంభంలో "స్టాక్ ఎగువ," ఏమిటి? [డేనియల్] సైజు 0? >> సైజు 0. స్టాక్ లో ఒక విషయము తర్వాత స్టాక్ ఎగువ ఏమిటి? మిస్సి, మీరు తెలుసు? [మిస్సి] వన్. >> సైజు సరిగ్గా, ఒకటి. మీరు పరిమాణం జోడించవచ్చు మరియు మీరు యెరే నందలి సూచిక పరిమాణంలో కొత్త మూలకం లో ఉంచడం చేసిన ప్రతిసారీ. భావన కల్పిస్తుంది ఉంటే, మేము ఒక లీనియర్ ఆ రకం దీన్ని చెయ్యవచ్చు. మేము మా తీగలను శ్రేణి పొందారు కాబట్టి, మేము, పరిమాణం సూచిక వద్ద ప్రాప్తి చూడాలని మరియు మేము అక్కడే మన చార్ * నిల్వ చూడాలని. ఏ తీగ కాపీ ఇక్కడ అక్కడ జరగబోతోంది ఎలా గమనించండి, మెమరీ లేదు డైనమిక్ కేటాయింపు? ఆపై మిస్సి, మేము ఇప్పుడు లేదు ఏమి పెరిగాడు మేము శ్రేణి తగిన స్థానంలో స్ట్రింగ్ నిల్వ చేసిన ఎందుకంటే, మరియు ఆమె మేము తదుపరి పుష్ కోసం సిద్ధంగా తద్వారా ఒక ద్వారా పరిమాణం పెంచడం లేదని చెప్పారు. కాబట్టి మేము s.size ఆ చేయవచ్చు + +. ఈ సమయంలో, మేము మా శ్రేణి నెట్టడం చేసిన. మేము లేదు లాస్ట్ థింగ్ ఏమిటి? [స్టూడెంట్] నిజమైన చూపించు. >> నిజమైన చూపించు. అది ఒక అందమైన సాధారణ కోడ్ అందంగా సులభం. కాదు చాలా. మీరు, స్టాక్ ఎలా పనిచేస్తుంది చుట్టూ మీ తల చుట్టి చేసిన ఈ అమలు అందంగా సులభం. ఇప్పుడు, ఈ యొక్క తదుపరి భాగం స్టాక్ స్ట్రింగ్ ఆఫ్ పాపింగ్ ఉంది. నేను మీరు అబ్బాయిలు ఈ కొద్దిగా పని కొంత సమయం ఇవ్వాలని వెళుతున్న. ఇది దాదాపు తప్పనిసరిగా మేము ఇక్కడ పుష్ లో చేసిన ఏమి రివర్స్ ఉంది. నేను చేసిన వాస్తవానికి - అయ్యో. నేను ఇక్కడ పైగా, మరియు పరికరంలోని ఒక ఉపకరణం అప్ బూట్ చేసిన నేను సమస్య 5 స్పెసిఫికేషన్ సెట్ పైకి లాగి చేసిన. మేము ఇక్కడ జూమ్ ఉంటే, మేము నేను cdn.cs50.net/2012/fall/psets/pset5.pdf వద్ద ఉన్నాను చూడగలరు. మీరు అబ్బాయిలు, ఇక్కడ section6.zip ఉన్న చేసే ఈ కోడ్ దిగుమతి? అన్ని కుడి. మీరు నిజంగా త్వరగా, ప్రస్తుతం ఆ, ఆ పూర్తి చెయ్యకపోతే. నా టెర్మినల్ విండో లో చేస్తాను. నిజానికి ఇక్కడ దానిని చేశాడు. అవును. అవును, సామ్? >> నేను ఎందుకు మీరు = STR పరిమాణం s.string 's బ్రాకెట్లలో అని పేర్కొన్నారు గురించి ప్రశ్న? STR ఏమిటి? ఆ ముందు ఎక్కడో నిర్వచించిన, లేదా - OH, చార్ * STR లో? [Hardison] అవును, సరిగ్గా. ఆ వాదన. >> ఓహ్, ఓకే. క్షమించాలి. [Hardison] మేము సైన్ కొట్టాలని స్ట్రింగ్ మీరు పేర్కొంటున్నట్టు మేము ఇక్కడ గురించి మాట్లాడను అని ఆలోచన చేసే ఇతర ప్రశ్న మేము s అనే ఈ వేరియబుల్ కలిగి మంజూరు కోసం మేము పట్టింది ఆ పరిధిని మరియు మాకు అందుబాటులో ఉంది. S ఈ స్టాక్ struct అని మంజూరు కోసం మేము పట్టింది. కాబట్టి, ఈ పుష్ కోడ్ వద్ద వెనక్కు తిరిగి చూస్తే మీరు మేము జారీ దట్ గాట్ ఈ స్ట్రింగ్ తో stuff చేస్తున్నా ఆ చూడగలరు కానీ అప్పుడు అకస్మాత్తుగా, మేము వంటి s.size యాక్సెస్, s పేరు నుండి వచ్చింది? చేస్తున్నారు మేము విభాగం ఆర్చీవ్ కు వెళుతున్న కోడ్ లో మరియు మీరు మీ సమస్య లో చేస్తూ ఉంటాను విషయం, సెట్స్ మేము మా స్టాక్ ప్రపంచ వేరియబుల్ struct చేసిన మేము అన్ని మా వేర్వేరు విధులను లో ప్రాప్యత కలిగి తద్వారా మాన్యువల్గా దీన్ని చుట్టూ పాస్ మరియు సూచనగా అది పాస్ చేయకుండా, అది అంశాన్ని అన్ని ఆ రకమైన చేయండి. మేము NICER విషయాలు చేయడానికి, మీరు ఉంటే, కొద్దిగా మోసం చేస్తున్నారు. మరియు అది సరదాకి ఎందుకంటే మేము ఇక్కడ చేస్తున్నా ఏదో, అది సులభం. వారు ఒక పెద్ద డేటా నిర్మాణం ఉంటే తరచుగా, మీరు ప్రజలు దీన్ని చూస్తారు వారి కార్యక్రమం లో నిర్వహించబడే చేయబడిన. యొక్క ఉపకరణం కు తిరిగి వెళ్ళి తెలపండి. అందరూ విజయవంతంగా section6.zip వచ్చింది? అందరూ అన్జిప్ section6.zip ద్వారా అన్జిప్? మీరు విభాగం 6 డైరెక్టరీలో వెళ్ళి ఉంటే - ఆహ్, అన్ని చోట్ల - మరియు మీరు ఇక్కడ ఏది జాబితా, మీరు మూడు వేర్వేరు. సి ఫైళ్లను పొందారు చూడండి. మీరు ఒక్కొక్కటిగా లింక్డ్ జాబితా ఇది క్యూ, ఒక SLL, మరియు ఒక స్టాక్ పొందారు. మీరు stack.c అప్ తెరిస్తే, మీరు, మేము మాకు నిర్వచించవచ్చు ఈ struct పొందారు చూడగలరు మేము కేవలం స్లయిడ్లలో గురించి చర్చిస్తామని ఖచ్చితమైన struct. మేము, స్టాక్ కోసం మా గ్లోబల్ వేరియబుల్ పొందారు మేము, మా పుష్ ఫంక్షన్ పొందారు మరియు తర్వాత మేము మా పాప్ ఫంక్షన్ పొందారు. ఇక్కడ స్లయిడ్ తిరిగి అప్ పుష్ కోసం నేను, కోడ్ ఉంచుతాము కానీ నేను మీరు అబ్బాయిలు చేయాలని భావిస్తే, మీ సామర్థ్యం మేరకు ఉంది వెళ్ళి పాప్ ఫంక్షన్ అమలు. ఒకసారి మీరు అమలు చేసిన, మీరు, స్టాక్ తయారు ఈ సంకలనం చేయవచ్చు తరువాత, ఫలితంగా స్టాక్ ఎగ్జిక్యూటబుల్ను అమలు మరియు ఆ డౌన్ ఇక్కడ ప్రధాన ఉందని ఈ పరీక్ష కోడ్ అన్ని రన్ చేస్తుంది. మరియు ప్రధాన వాస్తవానికి పుష్ మరియు పాప్ కాల్స్ చేస్తూ జాగ్రత్త తీసుకుంటుంది మరియు అన్ని హక్కు ద్వారా వెళ్ళే చూసుకోవాలి. ఇది కూడా ఇక్కడే స్టాక్ పరిమాణం initializes కాబట్టి మీరు ఆ ప్రారంభించడం గురించి ఆందోళన లేదు. మీరు అది సరిగా initialized అయిన పొందవచ్చు మీరు పాప్ ఫంక్షన్ లో యాక్సెస్ ఆ సమయానికి. ఆ సమంజసం లేదు? కాబట్టి ఇక్కడ వెళ్ళండి. పుష్ కోడ్ ఉంది. నేను మీరు అబ్బాయిలు 5 లేదా 10 నిమిషాలు ఇస్తాము. మరియు మీరు కోడింగ్ ఉన్నప్పుడు తాత్కాలిక లో ఏవైనా ప్రశ్నలు ఉంటే, వాటిని బిగ్గరగా అడగండి. మీరు ఒక అభ్యంతరకర పాయింట్ ను అలా అయితే, కేవలం అడగండి. ఇంకా అందరూ తెలియజేయండి నాకు తెలియజేయండి. చాలా మీ పొరుగు పని. [డేనియల్] మేము ప్రస్తుతం పాప్ అమలు చేస్తున్నారు? >> జస్ట్ పాప్. మీరు కావాలనుకుంటే మీరు పుష్ అమలు కాపీ చేయవచ్చు పరీక్ష పని చేస్తుంది కాబట్టి. అది రావడము విషయాలు పరీక్షించడానికి కష్టం ఎందుకంటే - లేదా, అది లేదు స్టాక్ లో ఏదైనా అక్కడ లేకపోతే ఒక స్టాక్ పాపింగ్ విషయాలు పరీక్షించడానికి కష్టం. తిరిగి చేయవలసి పాప్ ఏమిటి? స్టాక్ నుంచి మూలకం. ఇది స్టాక్ ఎగువ యొక్క మూలకం ఆఫ్ పొందండి కోరుకుంటున్నాము యొక్క తరువాత, స్టాక్ యొక్క పరిమాణం తరుగుదల మరియు ఇప్పుడు మీరు పైన మూలకం కోల్పోయి. ఆపై మీరు పైన మూలకం తిరిగి. [స్టూడెంట్, అపారదర్శక] [Hardison] కాబట్టి మీరు అలా చేస్తే ఏమి జరుగుతుంది? [స్టూడెంట్, అపారదర్శక] అప్ ఫోజు ముగుస్తుంది అంటే మీరు బహుశా గాని ఆక్సెస్ చేస్తారు ఒక మూలకం ఇంకా initialized లేదు, కాబట్టి మీ లెక్కింపు గత మూలకం ఆఫ్ ఇక్కడ. మీరు గమనిస్తే ఇక్కడ, పుష్ లో, మేము s.size మూలకం వద్ద తీగలను ఆక్సెస్ చేస్తారు అది ఒక న్యూ సూచిక ఎందుకంటే. ఇది స్టాక్ క్రొత్త అగ్ర ఉంది. పాప్, అదే s.size, తదుపరి స్థలంలో అన్నారు మీ స్టాక్ అన్ని మూలకాల మీద ఉండే స్థలం. కాబట్టి టాప్ అత్యంత మూలకం, s.size కాదు కానీ, అది దాని కింద ఉంది. మీరు ఏమి ఇతర విషయం - పాప్ లో, మీరు పరిమాణం తరుగుదల ఉంటుంది పోవడమే. మీరు ఇక్కడ మా చిన్న రేఖాచిత్రం తిరిగి గుర్తుంచుకుంటే, నిజంగా, మేము సంభవించే చూసిన మాత్రమే విషయం మేము పాప్ అని ఉన్నప్పుడు ఈ పరిమాణం తర్వాత 1 కు, మొదటి 2, పడిపోయాయి ఉంది. అప్పుడు మేము ఒక కొత్త మూలకం ముందుకు, అది సరైన స్థానంలో పెట్టారు. [బాసిల్] s.size 2 ఉంటే, అది మూలకం 2 వెళ్ళండి కాదు, మరియు మీరు ఆ మూలకం ఆఫ్ పాప్ చేయాలనుకుంటున్నారా మీరు? మేము వెళ్లిన అయితే - >> మరలా ఈ దృష్టి చూద్దాం. ఈ ఈ సమయంలో మా స్టాక్ ఉంటే మరియు మేము, పాప్ కాల్ ఇది వద్ద ఇండెక్స్ స్థానాన్ని అంశం? [బాసిల్] 2 వద్ద, కానీ 3 పాప్ జరగబోతోంది. >> కుడి. మా పరిమాణం 3 పేర్కొంది, కానీ మేము ఇండెక్స్ 2 వద్ద మూలకం పాప్ చేయాలనుకుంటున్నారా. మీరు శ్రేణుల యొక్క సున్నా-ఇండెక్సింగ్ తో కలిగి ఒకటి ఆఫ్ సామాన్య ఉంటాము. కాబట్టి మీరు మూడవ మూలకం పాప్ అనుకుంటున్నారు, కాని మూడవ మూలకం ఇండెక్స్ 3 వద్ద లేదు. మరియు మేము నెట్టడం చేసినప్పుడు ఆ మైనస్ 1 చేయడానికి లేదు కారణం ప్రస్తుతం ఎందుకంటే, మీరు ప్రకటన ఆ స్థానాన్ని మూలకం, మేము ఈ సమయంలో స్టాక్ లో ఏదో కొట్టాలని ఉంటే, మేము ఇండెక్స్ 3 వద్ద పుష్ అనుకుంటున్నారో. మరియు ఇది కేవలం కాబట్టి మీరు నెట్టడం చేసినప్పుడు పరిమాణం మరియు సూచికలు వరుసలో ఇలా జరిగింది. ఒక పని స్టాక్ అమలు సంపాదించి? మీరు ఒక పని స్టాక్ ఒక పొందారు. పాప్ ఇంకా మీరు పని ఉందా? [డేనియల్] అవును. నేను అలా అనుకుంటున్నాను. >> ప్రోగ్రామ్ అమలు మరియు భ్రంశం ఏర్పడుతుంది seg కాదు, అది ముద్రించిన యొక్క? మీరు దీన్ని అమలు అది "విజయం" ముద్రించాలా ఉందా? అవును. అది "విజయం" అవుట్ ముద్రిస్తుంది మరియు బూమ్ పోదు ఉంటే, స్టాక్ చేయండి అమలు, అప్పుడు అంతా మన మంచికే. అన్ని కుడి. యొక్క నిజంగా త్వరగా ఉపకరణం కు వెళ్ళి తెలపండి, మరియు మేము ఈ ద్వారా ఉంటాము. మేము పాప్ ఇక్కడ ఏం జరగబోతోంది చూడండి, ఉంటే డేనియల్, మీరు అని మొదటి విషయం ఏమిటి? [డేనియల్] s.size 0 కన్నా ఎక్కువ ఉంటే. [Hardison] సరే. మరియు మీరు ఎందుకు ఆ చేస్తారు? [డేనియల్] స్టాక్ లోపల ఏదో ఉంది నిర్థారించడానికి. [Hardison] రైట్. మీరు s.size 0 కన్నా ఎక్కువ అని నిర్ధారించడానికి పరీక్షించడానికి కావలసిన; లేకపోతే, మీరు ఏమి చేశారు ఏం కోరుకుంటున్నారు? [డేనియల్] రిటర్న్ శూన్య? >> రిటర్న్ శూన్య, సరిగ్గా. అయితే s.size 0 కంటే ఎక్కువగా ఉంటుంది. మేము అప్పుడు ఏమి వెళ్తున్నారు? స్టాక్ ఖాళీ లేకపోతే మేము ఏమి చేయాలి? [స్టెల్లా] మీరు పరిమాణం తరుగుదల? మీరు సరే, పరిమాణం తరుగుదల >>. కాబట్టి మీరు ఎలా చేస్తారు? >> S.size -. [Hardison] గ్రేట్. ఆపై మీరు ఏమి చేశారు? [స్టెల్లా] ఆ తరువాత తిరిగి s.string చెప్పారు [s.size]. [Hardison] గ్రేట్. లేకపోతే మీరు శూన్య తిరిగి. అవును, సామ్? [సామ్] ఎందుకు అది + 1 s.size ఉండాలి లేదు? [Hardison] ప్లస్ 1? >> అవును. >> అర్థమైంది. మీరు 1 తీసుకున్న ఉన్నందున [సామ్] నేను, ఆలోచన అప్పుడు మీరు వారు అడిగారు ఒక తిరిగి చూడాలని. [Hardison] ఈ మేము 0 సూచీలు ఈ మొత్తం సమస్యకు గురించి మాట్లాడుతూ కేవలం ఏమిటి. కాబట్టి మేము ఇక్కడ పైగా తిరిగి జూమ్ ఉంటే. మేము ఇక్కడే ఈ గై చూడండి, మీరు, మేము పాప్ ఆ చూడగలరు మేము ఇండెక్స్ 2 వద్ద మూలకం పాపింగ్ చేస్తున్నారు. కాబట్టి మేము అప్పుడు మా పరిమాణం మా ఇండెక్స్ సరిపోతుంది, మొదటి మా పరిమాణాన్ని తగ్గించడానికి. మేము మొదటి పరిమాణం తరుగుదల లేదు, అప్పుడు మేము -1 ఆపై తరుగుదల పరిమాణం లేదు. గ్రేట్. అన్ని మంచి? ఈ ఏ ప్రశ్నలు? ఇది రాయడానికి వివిధ రకాలుగా ఉన్నాయి. నిజానికి, మేము కూడా ఏదో ఒకటి చెయ్యాలి - మేము ఒక లైనర్ చేయవచ్చు. మేము ఒక లైన్ తిరిగి చేయవచ్చు. మేము ఆ చేయడం ద్వారా తిరిగి ముందు మేము నిజంగా తరుగుదల ఉంటుంది. కాబట్టి ఉంచడం - s.size ముందు. ఆ రేఖ నిజంగా దట్టమైన చేస్తుంది. ఎక్కడ మధ్య వ్యత్యాసం -. S పరిమాణం మరియు s.size - అని ఈ పోస్ట్ఫిక్స్ నొటేషన్ - ఎందుకంటే వారు పోస్ట్ఫిక్స్ నొటేషన్ కాల్ - వచ్చిన తర్వాత s.size - s.size సూచిక కనుగొనే ప్రయోజనాల కోసం పరిశీలించిన దీని అర్థం ఈ లైన్ అమలు చేయబడినప్పుడు ప్రస్తుతం వంటి, మరియు ఈ - లైన్ అమలు అవుతుంది తర్వాత జరుగుతుంది. ఇండెక్స్ s.size వద్ద మూలకం యాక్సెస్ తరువాత. మేము తరుగుదల మొదటి ఏమి చేయాలనే ఎందుకంటే ఆ, మేము ఏమి కాదు. Othewise, మేము శ్రేణి ప్రాప్తి చేయడం చూడాలని, సమర్థవంతంగా, హద్దులు దాటింది. మేము నిజంగా యాక్సెస్ చేయడానికి కావలసిన ఒక పైన మూలకం ప్రాప్తి చేయడం చూడాలని. అవును, సామ్? >> వేగంగా లేదా ఒక లైన్ లేదా చేసే తక్కువ RAM వినియోగాన్ని? [Hardison] నిజాయితీగా, అది నిజంగా ఆధారపడి ఉంటుంది. [సామ్, అపారదర్శక] >> అవును, అది ఆధారపడి ఉంటుంది. మీరు కంపైలర్ ఉపాయాలు చేయవచ్చు గుర్తించటానికి కంపైలర్ పొందడానికి, సాధారణంగా, నేను ఊహించుకోండి. కాబట్టి మేము ఈ కంపైలర్ ఆప్టిమైజేషన్ విషయాల గురించి కొద్దిగా పేర్కొన్నారు చేసిన మీరు, కంపైల్ లో చేసే మరియు ఆ, ఒక కంపైలర్ గుర్తించడానికి చేయగలరు ఆ విషయం యొక్క రకంగా OH వంటి హే, నేను, ఒక కార్యకలాపాన్ని ఈ అన్ని చేయవచ్చు వంటి RAM నుండి పరిమాణం వేరియబుల్ లోడ్ వ్యతిరేకంగా, ఇది decrementing తిరిగి దాన్ని నిల్వ, ఆపై మళ్ళీ దాన్ని తిరిగి లోడ్ ఈ ఆపరేషన్ మిగిలిన ప్రాసెస్. కానీ సాధారణంగా, ఏ, ఈ విషయం యొక్క విధమైన కాదు ఆ చాలా వేగంగా మీ ప్రోగ్రామ్ చేయడానికి జరగబోతోంది. స్టాక్స్ లో ప్రశ్నలేవీ? కాబట్టి నెట్టడం మరియు పాపింగ్. మీరు అబ్బాయిలు, హ్యాకర్ ఎడిషన్ ప్రయత్నించండి చేయాలనుకుంటే మనం హ్యాకర్ ఎడిషన్ లో చేసిన వాస్తవానికి వెళ్లిపోయిన మరియు ఈ స్టాక్ డైనమిక్ పెరుగుతాయి చేసింది. ఇక్కడ పుష్ ఫంక్షన్ లో ప్రధానంగా ఉంది సవాలు, ఆ శ్రేణి పెరిగే ఏ విధంగా గుర్తించడానికి మీరు స్టాక్ కు మరింత ఎక్కువగా అంశాలను నెట్టడం ఉంచేందుకు వంటి. ఇది నిజంగా చాలా అదనపు కోడ్ కాదు. మీరు సరిగ్గా అక్కడ malloc పిలుపు పొందడానికి గుర్తు పెట్టుకోవాలి, - కేవలం కాల్ మీరు realloc కాల్ వెళ్లి చేసినప్పుడు మరియు అవుట్ చేసి చూడవచ్చు. మీకు ఆసక్తి ఉంటే ఒక సరదా సవాలు ఉంది. కానీ ప్రస్తుతానికి, యొక్క ముందుకు వివరించారు, క్యూలు గురించి మాట్లాడేందుకు లెట్స్. ఇక్కడ స్క్రోల్ ద్వారా. క్యూ స్టాక్ సన్నిహిత తోబుట్టువులు ఉంది. కాబట్టి స్టాక్ లో, ఆ విషయాలు గత పెట్టబడ్డాయి అప్పుడు తిరిగి మొదటి విషయాలు ఉన్నాయి. మేము క్రమంలో, ఈ, చివరి అవుట్ మొదటి, లేదా ఎల్ఐఎఫ్ఓ పొందారు. క్యూ లో అయితే, మీరు లైన్ లో నిలబడి చేసినప్పుడు నుండి ఆశించడం పెంచండి, లైన్ లో పొందడానికి మొదటి వ్యక్తి, క్యూ పొందడానికి మొదటి విషయం, క్యూ నుండి పొందబడింది పొందే మొదటి విషయం. మేము గ్రాఫ్లు వ్యవహరించే చేసినప్పుడు క్యూలు కూడా తరచుగా ఉపయోగిస్తారు మేము స్టాక్లతో క్లుప్తంగా గురించి మాట్లాడుకున్నారు, వంటి మరియు క్యూలు ఇతర విషయాలు కొంత కూడా సులభ ఉంటాయి. తరచుగా వచ్చే ఒక విషయం, ఉదాహరణకు, నిర్వహించడానికి ప్రయత్నిస్తున్న మూలకాల ఒక క్రమబద్ధీకరించబడతాయి జాబితా. మరియు మీరు ఒక అర్రే తో చేయవచ్చు. మీరు, వ్యూహంలో విషయాలను క్రమబద్ధీకరించబడతాయి జాబితా ఉంచుతుంది కానీ ఆ గమ్మత్తైన గెట్స్ అప్పుడు ఉన్న మీరు ఎల్లప్పుడూ కనుగొనేందుకు కలిగి తదుపరి విషయం ఇన్సర్ట్ చెయ్యడానికి సరైన స్థలం. మీరు 10 ద్వారా సంఖ్యల వ్యూహం, 1 కలిగి అయితే, మరియు తర్వాత మీరు, 100 ద్వారా అన్ని సంఖ్యలు 1 ఆ పొడిగంచాలనుకుంటున్నాను మరియు మీరు యాదృచ్ఛిక క్రమంలో ఈ సంఖ్యలు పొందడానికి మరియు ఒక్కటి ప్రయత్నిస్తున్న మీరు ద్వారా వెళ్ళి వంటి క్రమబద్ధీకరించిన మీరు బదిలీ యొక్క ఎన్నో ముగుస్తుంది. క్యూలు మరియు అంతర్లీన డేటా నిర్మాణాలు కొన్ని రకాల కొన్ని రకాల, మీరు దీన్ని సులభం ఉంచుకోవచ్చు. మీరు ఏదో జోడించి, మొత్తం విషయం ప్రతి సమయం స్థానచలనం లేదు. లేదా మీరు చుట్టూ అంతర్గత అంశాలను బదిలీ చాలా చేయాలి. మేము ఒక క్యూ చూడండి, మీరు చూస్తారు - కూడా queue.c విభాగంలో కోడ్ - మేము మీరు ఇచ్చిన చేసిన struct మేము ఒక స్టాక్ కోసం మీరు ఇచ్చిన struct నిజంగా పోలి ఉంటుంది. ఈ ఒక మినహాయింపు ఉంది, మరియు ఒక మినహాయింపు మేము తల అని ఈ అదనపు పూర్ణాంక కలిగి ఉంది, మరియు ఇక్కడ తల, క్యూ యొక్క తల యొక్క పర్యవేక్షించే ఉంది క్యూ లో లేదా మొదటి మూలకం. ఒక స్టాక్ తో, మేము తిరిగి గురించి అని మూలకం ట్రాక్ సాధించారు కేవలం పరిమాణం ఉపయోగించి స్టాక్ లేదా టాప్, ఒక క్యూ తో అయితే, మేము వ్యతిరేక చివర్లలో పరిష్కరించేందుకు సమస్య. మేము టాక్ చివరిలో విషయాలు ప్రయత్నిస్తున్న, కానీ ముందు నుండి విషయాలు తిరిగి చేస్తున్నారు. అది ప్రభావవంతంగా, తల తో, మేము, క్యూ ప్రారంభంలో యొక్క ఇండెక్స్ కలిగి మరియు పరిమాణం మాకు క్యూ యొక్క ముగింపు సూచిక ఇస్తుంది మేము తల నుండి విషయాలు తిరిగి మరియు తోక వరకు విషయాలు జోడించండి చేయవచ్చు. స్టాక్ తో అయితే, మేము మాత్రమే ఎప్పుడూ స్టాక్ ఎగువ వ్యవహరించే ఉన్నారు. మేము స్టాక్ దిగువన యాక్సెస్ వహించలేదు. మేము మాత్రమే టాప్ విషయాలను జోడించారు మరియు టాప్ యొక్క విషయాలను బయలుదేరాడు కాబట్టి మేము మా struct లోపల అదనపు ఫీల్డ్ అవసరం లేదు. ఆ సాధారణంగా సమంజసం లేదు? అన్ని కుడి. అవును, షార్లెట్? [షార్లెట్, అపారదర్శక] [Hardison] ఒక గొప్ప ప్రశ్న, మరియు ఆ ఉపన్యాసం లో వచ్చిన ఒకటి. బహుశా కొన్ని ఉదాహరణలు ద్వారా వాకింగ్ వర్ణించేందుకు ఎందుకు మేము తీగలను క్యూ అధిపతిగా [0] ఉపయోగించడానికి లేదు. కాబట్టి మేము మా క్యూ కలిగి ఊహించుకోండి, మేము అది క్యూ కాల్ చూడాలని. ప్రారంభంలో, మేము దానిని ఇన్స్టాన్షిఎట్ చేసినప్పుడు, మేము కేవలం ప్రకటించింది చేసినప్పుడు, మేము ఏదైనా initialized లేదు. అన్ని చెత్త ఉంది. కాబట్టి కోర్సు యొక్క మేము ప్రారంభించడం ఆ నిర్ధారించుకోవాలి పరిమాణం మరియు తల ఖాళీలను రెండు సహేతుకమైన 0, ఏదో ఒక. మేము కూడా ముందుకు వెళ్లి మా క్యూలో అంశాలు బయటకు శూన్యం కాలేదు. మరియు ఈ చిత్రంలో సరిపోయేలా చేయండి, ఇప్పుడు మా క్యూ మూడు అంశాలు కలిగి ఆ గమనించి; మా స్టాక్ నాలుగు అనువుగా ఉండేది, అయితే మా క్యూ మూడు పట్టుకోగలదు. ఆ చిత్రం సరిపోయేలా చేయండి కేవలం ఉంది. ఇక్కడ జరిగే మొదటి విషయం మేము "హాయ్" స్ట్రింగ్ ఎన్క్యూ ఉంది. మరియు కేవలం వంటి మేము స్టాక్ ద్వారా కూడా, ఇక్కడ భయంకరమైన వివిధ ఏదీ, మేము తీగలను వద్ద [0] మరియు 1 మా పరిమాణం పెంచడం పై స్ట్రింగ్ త్రో. మేము "బై" ఎన్క్యూ, ఇది ఉంచే. కాబట్టి ఈ అధిక భాగం ఒక స్టాక్ కనిపిస్తోంది. మేము ఇక్కడ కొత్త మూలకం, కొత్త మూలకం ప్రారంభించబడింది పరిమాణం రూపుదిద్దుకుంటున్నాయి ఉంచుతుంది. ఏదో dequeue మీరు ఏమి ఈ సమయంలో జరుగుతుంది? మేము dequeue మీరు ఎప్పుడు, ఇది మేము dequeue చేయదలిచిన అంశం? [బాసిల్] స్ట్రింగ్స్ [0]. >> జీరో. సరిగ్గా కుడి, బాసిల్. మేము మొదటి స్ట్రింగ్, ఈ ఒక "హాయ్" వదిలించుకోవటం మీరు. కాబట్టి మార్చిన ఇతర విషయం ఏమిటి? మేము స్టాక్ ఏదో ఆఫ్ popped ఉన్నప్పుడు గమనించి, మేము, పరిమాణం మార్చబడింది కానీ ఇక్కడ, మేము చేసే కొన్ని విషయాలను పొందారు. పరిమాణం మార్చు, కానీ తల మార్పులు లేదు మాత్రమే. ఈ ప్రారంభ షార్లెట్ పాయింట్ తిరిగి వెళ్తున్నారు: ఎందుకు మేము కూడా ఈ తల ఎందుకు చెయ్యాలి? ఇది ఇప్పుడు షార్లెట్ సమంజసం లేదు? యొక్క >> కైండ్. యొక్క [Hardison] కైండ్? మేము dequeued కనుక ఏమి జరిగింది? తల ఇప్పుడు ఆసక్తికరమైన అని ఏం చేసావ్? అది మార్చబడింది [షార్లెట్] ఓహ్, ఎందుకంటే - సరే. నేను చూడండి. ఎందుకంటే తల - తల నగర పరంగా మార్పులు సూచించే కౌంటీ. ఇది ఇకపై ఎల్లప్పుడూ సున్నా సూచిక ఒకటి. >> అవును, సరిగ్గా. అధిక మూలకం dequeueing ఉంటే ఏమి జరిగింది ఉంది జరిగింది మరియు మేము ఈ తల రంగంలో లేదు మేము ఎల్లప్పుడూ 0 సూచిక మా క్యూ యొక్క తల వద్ద ఈ స్ట్రింగ్ కాల్ ఎందుకంటే, అప్పుడు మేము క్యూ మిగిలిన డౌన్ మార్చేందుకు భావిస్తాను. మేము తీగలను నుండి "బై" [1] మారిపోయే [0] తీగలను కలిగి కావలసిన. మరియు తీగలను [2] డౌన్ కోసం తీగలను [1]. మరియు మేము, మూలకాల యొక్క మొత్తం జాబితా ఇలా భావిస్తాను అంశాల మొత్త. మరియు మేము ఒక అర్రే ఈ చేస్తున్నా, ఆ నిజంగా ఖరీదైన పొందుతాడు. ఇక్కడ, అది ఒక పెద్ద ఒప్పందం కాదు. మేము మా పరిధిలో మూడు అంశాలను కలిగి ఉంటుంది. కానీ మేము వెయ్యి అంశాలు క్యూ లేదా ఒక మిలియన్ అంశాలను కలిగి ఉంటే, మరియు తర్వాత ఒక అకస్మాత్తుగా, మేము dequeue కొంత సంపాదించడం ప్రారంభించండి, ఒక లూప్ లో అన్ని కాల్స్ వస్తువులు నిజంగా అది నిరంతరం ప్రతిదీ డౌన్ మార్పు చెందుతున్న వేగాన్ని వెళ్తున్నారు. మీకు తెలుసా, 1 షిఫ్ట్, 1 1, మార్పు ద్వారా, 1 షిఫ్ట్ ఉంచారు. ఇది నిజంగా ఒక పాయింటర్ కాదు అయినప్పటికీ బదులుగా, ఈ తల ఉపయోగించడానికి, మేము దీనిని "పాయింటర్" కాల్ ఖచ్చితమైన భావాన్ని లో ఇది ఒక పాయింటర్ రకం కాదు. ఇది ఒక పూర్ణాంకానికి * లేదా ఒక చార్ * లేదా అలాంటిదే మాత్రం కాదు. కానీ పై లేదా మా క్యూ యొక్క తల సూచిస్తూ ఉంటుంది. Yeah? [స్టూడెంట్] కేవలం తల వద్ద ఉండే వస్తువు ఆఫ్ పాప్ ఎలా dequeue తెలుసా? [Hardison] ఎలా dequeue తల వద్ద ఉంది ఏ ఆఫ్ పాప్ ఎలా తెలుసు? >> కుడి, అవును. >> అంటే అది వద్ద ఆరాటపడుతుంది కు సెట్ కేవలం ఏ తల రంగం. మేము ఇక్కడ చూడండి ఈ మొదటి సందర్భంలో, ఉంటే, మా తల 0, ఇండెక్స్ 0. >> కుడి. [Hardison], ఇది కేవలం సరే, అలాగే, ఇండెక్స్ 0 వద్ద మూలకం, స్ట్రింగ్ "హాయ్" అని సో మా క్యూ యొక్క తల వద్ద మూలకం ఉంది. కాబట్టి మేము వ్యక్తివి dequeue చూడాలని. మరియు ఆ కాలర్ తిరిగి పొందే మూలకం ఉంటుంది. అవును, సాద్? >> కాబట్టి తల ప్రధానంగా అమర్చుతుంది - మీరు ఇండెక్స్ దానికి వెళుతున్న? అది ప్రారంభం ఏమిటి? >> అవును. సరే >>. [Hardison] మా శ్రేణి కోసం కొత్త ప్రారంభం కావడానికి యొక్క. కాబట్టి మీరు ఏదో dequeue, మీరు చేయాల్సిందల్లా, ఇండెక్స్ q.head వద్ద మూలకం యాక్సెస్ ఉంటుంది మరియు మీరు dequeue చేయదలిచిన మూలకం ఉంటుంది. మీరు పరిమాణం తరుగుదల ఉంటుంది. విషయాలు ఈ గల చిన్న గమ్మత్తైన చోటే మేము ఒక బిట్ లో చూస్తారు. మేము మళ్లీ ఎన్క్యూ ఉంటే, మేము, ఇప్పుడు dequeue, మరియు మేము పేరు ఎన్క్యూ చెయ్యాలి? ఎక్కడ తదుపరి మూలకం మా క్యూలో వెళ్ళి లేదు? మేము స్ట్రింగ్ "CS" ఎన్క్యూ అనుకుందాం. ఇది ఇండెక్స్ లోకి వెళ్తుంది? [స్టూడెంట్స్] స్ట్రింగ్స్ [2]. >> రెండు. ఎందుకు 2 మరియు 0? [బాసిల్] ఇప్పుడు తల 1 కాబట్టి, జాబితా ప్రారంభం వంటిది కనుక? [Hardison] రైట్. మరియు జాబితా యొక్క ముగింపు సూచిస్తుంది? మేము మా క్యూ ముగింపు సూచించడానికి ఉపయోగించారు చేశారు? తల మా క్యూ యొక్క తల, మా క్యూ యొక్క ప్రారంభం. మా క్యూ ముగింపు ఏమిటి? [స్టూడెంట్స్] సైజు. >> సైజు, సరిగ్గా. మా కొత్త అంశాలు పరిమాణంలో వెళ్లి, మరియు మేము తీసుకున్న అంశాలు ఆఫ్ తల వద్ద జరుగుట. రాబోయే మూలకం ఎన్క్యూ చేసినప్పుడు, మేము పరిమాణంలో లో ఉంచారు చేస్తున్నారు. [స్టూడెంట్] ముందు మీరు అయితే లో, పరిమాణం, కుడి, 1 అని ఉంచండి? [Hardison] రైట్. కాబట్టి చాలా పరిమాణం వద్ద. సైజు +, కాని +1, కానీ + తల. మేము తల మొత్తం ద్వారా ప్రతిదీ మారింది ఎందుకంటే. ఇక్కడ, ఇప్పుడు మేము ఇండెక్స్ 1 లో మొదలై 1 పరిమాణం ఒక క్యూ పొందారు. తోక సూచిక 2. అవును? [స్టూడెంట్] ఏం జరుగుతుందో మెమరీలో మీరు dequeue తీగలను [0], మరియు తీగలను 'స్లాట్లు కేవలం ప్రాథమికంగా, ఖాళీ పొందండి లేదా కేవలం మర్చిపోయారా? [Hardison] అవును. ఈ కోణంలో, మేము వాటిని మర్చిపోకుండా చేస్తున్నారు. మేము వాటిని యొక్క కాపీలు నిల్వ ఉన్నట్లయితే - అనేక డేటా నిర్మాణాలు తరచుగా మూలకాల యొక్క సొంత కాపీలు నిల్వ చేస్తుంది డేటా నిర్మాణం మేనేజింగ్ వ్యక్తి ఆందోళన లేదు కాబట్టి అన్ని గమనికలు వెళ్తున్నారు పేరు గురించి. డేటా నిర్మాణం అన్నింటికీ పట్టుకుని, అన్ని కాపీలు గట్టిగ పట్టుకుని ప్రతిదీ సరిగ్గా అలాగే నిర్ధారించాలి. అయితే, ఈ సందర్భంలో, ఈ డేటా నిర్మాణాలు కేవలం, సరళత కోసం, మేము వాటిని లో నిల్వ చేస్తున్న ఏదైనా యొక్క కాపీలు తయారు లేదు. [స్టూడెంట్] ఈ నిరంతర శ్రేణి -? >> అవును. మేము నిర్వచనం ఈ నిర్మాణం యొక్క గురించి తిరిగి చూడాలని, అది ఉంది. ఇది మీరు చూసిన వలె ఒక ప్రామాణిక అమరిక యొక్క చార్ * s యొక్క వ్యూహం. ఆ లేదు -? >> అవును, నేను కాదని జరిగినది మీరు చివరకు కొంత వరకూ, మెమరీ రన్నవుట్, మీరు ఉంటే మీరు మీ పరిధిలో ఈ ఖాళీ మచ్చలు ఉంటే? [Hardison] అవును, ఒక మంచి పాయింట్. మేము ఈ సమయంలో ఇప్పుడు జరిగిన ఏమి చూడండి, ఉంటే మేము మా క్యూ భర్తీ చేసిన, ఇది అలా కనిపిస్తుంది. కానీ మేము నిజంగా మా క్యూ భర్తీ చేయలేదు మేము పరిమాణం 2 అని ఒక క్యూ ఉంటుంది, కాని అది ఇండెక్స్ 1 ప్రారంభమవుతుంది ఎందుకంటే, మా తల పాయింటర్ అనేది ఎందుకంటే. మీరు చెబుతున్న ఉన్నాయి, ఆ తీగలను వద్ద మూలకం [0], ఇండెక్స్ 0 వద్ద, నిజంగా లేదు. ఇది ఇకపై మా క్యూ లో కాదు. అలా వెళ్లి మరియు మేము అది dequeued అది ఓవర్రైట్ ఇబ్బంది లేదు. కాబట్టి మేము మెమరీ రన్నవుట్ అనిపిస్తున్నది అయినప్పటికీ, మేము నిజంగా లేదు. మాకు ఉపయోగించడానికి ఆ స్థానాన్ని అందుబాటులో ఉంది. తగిన ప్రవర్తన, మేము dequeue ఏదో ప్రయత్నించండి మరియు మొదటి ఉన్నట్లయితే బై ఆఫ్ పాప్ అని, "బై" ఇష్టం. ఇప్పుడు మా క్యూ సూచిక 2 ప్రారంభమవుతుంది మరియు 1 పరిమాణం ఉంటుంది. మేము మళ్ళీ ఏదో ప్రయత్నించండి మరియు ఎన్క్యూ ఉంటే ఇప్పుడు, 50 సే 50 ఇండెక్స్ 0 వద్ద ఈ స్పాట్ లో వెళ్ళాలి అది ఇప్పటికీ మాకు అందుబాటులో ఎందుకంటే. అవును, సాద్? [సాద్] ఆ స్వయంచాలకంగా ఏర్పడుతుందా? [Hardison] ఇది చాలా స్వయంచాలకంగా సంభవించదు. మీరు గణిత లేదు అది పని, అయితే తప్పనిసరిగా మనం చేసిన మేము చుట్టూ చుట్టి చేసిన చెప్పవచ్చు. ఇది మధ్యలో ఒక రంధ్రం ఉంటే [సాద్] మరియు ఓకే నా [Hardison] మేము గణిత సరిగా పని చేయవచ్చు ఉంటే ఇది. మరియు ఆ నిజానికి mod ఆపరేటర్లు తో ఆ హార్డు కాని అవుతుంది. కాబట్టి వలె మేము, సీజర్ మరియు crypto విషయాలలో చేశాడు mod ఉపయోగించి, మేము విషయాలు చుట్టూ పొందడానికి మరియు కొనసాగించడాన్ని చేయవచ్చు మా క్యూ చుట్టూ మరియు చుట్టూ మరియు చుట్టూ తో, ఆ తల పాయింటర్ చుట్టూ కదిలే చోటు చేసుకుంది. ఆ పరిమాణం గమనించండి ఎల్లప్పుడూ క్యూ లోపల వాస్తవానికి మూలకాల సంఖ్య గౌరవిస్తూ ఉంటుంది. అది ద్వారా సైకిల్ ఉంచుతుంది తల పాయింటర్ ఉంది. మేము ప్రారంభానికి తిరిగి వెళ్ళడానికి ఇక్కడ ఏమి జరుగుతుందో చూడండి, ఉంటే మరియు మీరు తల ఏమి చూడటానికి ఏదో ఎన్క్యూ ఉన్నప్పుడు, ఏమీ తల జరిగింది. మేము ఏదో వరుసలో ఉన్నప్పుడు, ఏమీ తల జరిగింది. ఏదో dequeued వెంటనే తల ఒకటి పెరుగుతుంది. మేము ఏదో వరుసలో, ఏమీ తల నిర్మాణము. ఏదో dequeue చేసినప్పుడు, ఆకస్మికంగా తల పెరిగిన తీర్చుకుంటాడు. ఏదో ఎన్క్యూ చేసినప్పుడు, ఏమీ తల నిర్మాణము. మేము మళ్ళీ ఏదో dequeue ఉన్నట్లయితే ఈ సమయంలో జరుగుతుంది? ఏదైనా ఆలోచనలు? ఏ తలపై జరుగుతుంది? తల ఏం చేయాలి అనే విషయాన్ని మేము ఏదో dequeue ఉన్నట్లయితే? తల ప్రస్తుతం, సూచిక 2 ఉంది ఇది క్యూ యొక్క తల తీగలను [2] అని అర్థం. [స్టూడెంట్] 0 చూపించే? >> ఇది 0 తిరిగి ఉండాలి. ఇది ఖచ్చితంగా, చుట్టూ తిరిగి వ్రాప్ ఉండాలి. ఇప్పటివరకు, మేము dequeue అని ప్రతిసారీ, మేము, తల ఒక జోడించడం చేసిన తల ఒక జోడించడానికి, తల ఒక జోడించడానికి, తల ఒక జోడించండి. ఆ తల పాయింటర్ మా శ్రేణి చివరి ఇండెక్స్ కు వస్తుంది, వెంటనే అప్పుడు మేము ప్రారంభానికి చుట్టూ తిరిగి మూసివేయాలని కలిగి, 0 తిరిగి వెళ్ళండి. [షార్లెట్] నా స్టాక్ లో క్యూ యొక్క సామర్థ్యం నిర్ణయిస్తుంది? [Hardison] ఈ సందర్భంలో, మనం కేవలం ఒక # నిర్వచించిన స్థిరంగా ఉపయోగిస్తున్నాను. సరే >>. [Hardison] వాస్తవ. సి ఫైలు, మీరు కొద్దిగా తో మరియు చెత్త వెళ్ళే మరియు అది పెద్ద లేదా మీకు కావలసిన తక్కువగా చేయండి. [షార్లెట్] కాబట్టి మీరు ఒక క్యూ చేస్తున్న సమయంలో, మీరు కంప్యూటర్ ఉంటావు ఉందని మీరు స్టాక్ ఉండాలనుకుంటున్నాను ఎంత పెద్దది? [Hardison] ఒక గొప్ప ప్రశ్న. రెండు మార్గాలు ఉన్నాయి. ఒక ముందు దానిని నిర్వచించి మరియు ఈ చెప్పడానికి 4 అంశాలు లేదా 50 అంశాలు లేదా 10,000 కలిగి క్యూ అని అన్నారు. ఇతర మార్గం హ్యాకర్ ఎడిషన్ వారిని ఎలా ఏమి చేయాలో మరియు మరిన్ని అంశాలను సైన్ జోడించబడుతుంది మీ క్యూ డైనమిక్ పెరుగుతాయి కలిగి ఫంక్షన్లను సృష్టించవచ్చు [షార్లెట్] కాబట్టి మొదటి ఎంపిక పనిచేయడానికి, మీరు ఏమి సింటాక్స్ ఉపయోగించగలను కార్యక్రమం చెప్పడం క్యూ యొక్క పరిమాణం ఏమిటి? [Hardison] ఆహ్. కాబట్టి యొక్క ఈ యొక్క అవుట్ తెలియజేయండి. నేను ఇక్కడ stack.c ఇప్పటికీ ఉన్నాను, నేను కేవలం ఇక్కడ టాప్ వరకు స్క్రోల్ వెళుతున్న. మీరు ఈ ఇక్కడే చూడగలరు? ఈ # సామర్థ్యం 10 నిర్వచించే ఉంది. మరియు ఈ మేము క్యూ కోసం దాదాపుగా ఖచ్చితమైన వాక్యనిర్మాణం. క్యూ లో తప్ప, మేము ఇక్కడ అదనపు struct రంగంలో పొందారు. [షార్లెట్] ఓహ్, నేను సామర్థ్యం స్ట్రింగ్ కోసం సామర్థ్యం అర్థం ఆలోచన. [Hardison] ఆహ్. పదం యొక్క గరిష్ట పొడవు అదే >>. >> అర్థమైంది. అవును. ఇక్కడ సామర్థ్యం - ఒక గొప్ప పాయింట్. మరియు ఈ గమ్మత్తైన ఏదో ఒకటి ఉంటుంది మనం ఇక్కడ ప్రకటించారు చేసిన చార్ * s యొక్క వ్యూహం ఉంది. గమనికలు యొక్క ఒక అమరిక. ఈ అక్షరాలు యొక్క వ్యూహం ఉంది. ఈ ఫైల్ కోసం మీ బఫర్సుకొరకు ప్రకటించారు చేసిన మీరు చూసిన కావచ్చు I / O, మీరు స్టాక్ న మానవీయంగా తీగలను సృష్టించారు చేసినప్పుడు. అయితే, మనం ఇక్కడ పొందారు చార్ * s యొక్క వ్యూహం ఉంది. కనుక ఇది గమనికలు యొక్క వ్యూహం ఉంది. అసలైన, మేము తిరిగి దూరంగా మరియు మేము ఇక్కడ ఏమి విషయంలో చూస్తే ప్రదర్శనలో, మీరు నిజమైన అంశాలు పాత్ర డేటా చూడండి అర్రే లోపలే నిల్వ చెయ్యబడదు. ఇక్కడికి మా శ్రేణి లోపల నిల్వ పాత్ర డేటా గమనికలు ఉన్నాయి. సరే. కాబట్టి మేము, క్యూ యొక్క పరిమాణం కేవలం స్టాక్ వలె ఎలా చూసిన పరిమాణం ఎల్లప్పుడూ క్యూలో మూలకాల సంఖ్య గౌరవిస్తుంది. 2 enqueues తరువాత, పరిమాణం 2. ఒక dequeue తరువాత పరిమాణం ఇప్పుడు 1. మరొక ఎన్క్యూ తరువాత పరిమాణం 2 వరకు తిరిగి ఉంది. కాబట్టి పరిమాణం ఖచ్చితంగా, క్యూ లో మూలకాల సంఖ్య గౌరవిస్తుంది మరియు తర్వాత తల కేవలం సైక్లింగ్ ఉంచుతుంది. ఇది 0-1-2, 0-1-2, 0-1-2 నుండి వెళుతుంది. మరియు మేము dequeue కాల్ ప్రతిసారీ, తల పాయింటర్ తదుపరి ఇండెక్స్ కు పెరిగిన తీర్చుకుంటాడు. తలపై వెళ్ళడానికి గురించి ఉంటే మరియు అది తిరిగి చుట్టూ 0 to ఉచ్చులు. కాబట్టి ఆ, మేము dequeue ఫంక్షన్ వ్రాయగలవు. మరియు మేము మీరు అబ్బాయిలు బదులుగా అమలు కోసం ఎన్క్యూ ఫంక్షన్ విడిచి వెళుతున్న. మేము మా క్యూ యొక్క ఒక మూలకం అవుట్ dequeue చేసినప్పుడు, మేము స్టాక్లకు పాప్ ఫంక్షన్ రాయడం మొదలు డేనియల్ అని మొదటి విషయం ఏమిటి? నాకు ఇంకా మాట్లాడే వారు వీరు ఎవరైనా నుండి మాకు లెట్. , చూడండి సాద్ లెట్ మీరు డేనియల్ అతను పాప్ రాశారు మొదటి విషయం వంటి ఏమి గుర్తు లేదా? [సాద్], ఇది ఉంది జరిగినది - ఏదైనా పరీక్షించారు >>. [సాద్] పరిమాణం 0 కన్నా ఎక్కువ ఉంటే. ఖచ్చితంగా >>. మరియు ఆ పరీక్ష ఏమిటి? [సాద్] శ్రేణిలో ఏదైనా ఉంది లేదో పరీక్ష చేస్తుందని. [Hardison] అవును. సరిగ్గా. అది ఖాళీ చేస్తే మీరు స్టాక్ బయటకు ఏదైనా పాప్ కాదు. అది ఖాళీ ఉంటే అలాగే, మీరు ఒక వరుస నుంచి ఏదైనా dequeue కాదు. మేము ఇక్కడ మా dequeue ఫంక్షన్ చెయ్యాలి మొదటి విషయం ఏమిటి, మీరు అనుకుంటున్నారు? [సాద్] పరిమాణం 0 కన్నా ఎక్కువ ఉంటే? >> అవును. ఈ సందర్భంలో, నేను నిజానికి ఇది 0 ఉంటే చూడటానికి పరీక్షించి. అది 0 అయితే, మేము శూన్య తిరిగి రావచ్చు. కానీ ఖచ్చితమైన ఇదే తర్కం. మరియు యొక్క ఈ తో చెయ్యనివ్వండి. పరిమాణం 0 కాకపోతే, మేము dequeue చేయదలిచిన మూలకం ఎక్కడ ఉంది? [సాద్] తలపై? ఖచ్చితంగా >>. మేము మా క్యూ లో మొదటి మూలకం లో అక్కడ చేయవచ్చు తల వద్ద మూలకం ప్రాప్తి చేయడం ద్వారా. క్రేజీ ఏమీ లేదు. తరువాత, మనం ఏమి చెయ్యాలి? ఏమి ఉంటుంది? మేము dequeue లో మాట్లాడారు ఇతర విషయం ఏమిటి? మా క్యూ మారింది ఎందుకంటే రెండు విషయాలు, ఏమి ఉన్నాయి. [డేనియల్] పరిమాణాన్ని తగ్గించండి. >> మేము పరిమాణం తగ్గిస్తుంది, మరియు తల పెంచడానికి ఉందా? సరిగ్గా. తల పెంచడానికి, మేము గుడ్డిగా గుర్తుంచుకోండి తల పెరగదు. మేము queue.head లాగే కాదు + +. మేము కూడా సామర్థ్యం ద్వారా ఈ mod ఉన్నాయి ఉంటుంది. ఎందుకు మేము, సామర్థ్యం ద్వారా స్టెల్లా MoD చెయ్యాలి? [స్టెల్లా] ఇది చుట్టూ కలిగి ఉంటుంది. ఖచ్చితంగా >>. సామర్థ్యం ద్వారా మేము mod అది 0 to చుట్టూ తిరిగి మూసివేయాలని ఎందుకంటే. కాబట్టి ఇప్పుడు, ఈ సమయంలో, మేము డేనియల్ మాట్లాడుతూ చేయవచ్చు. మేము పరిమాణం తరుగుదల ఉంటుంది. మరియు తర్వాత మేము క్యూ ఎగువన అని మూలకం తిరిగి రావచ్చు. ఇది మొదటి వద్ద gnarly రకమైన కనిపిస్తోంది. మీరు ఒక ప్రశ్న కలిగి ఉండవచ్చు. క్షమించాలి? [సామ్] ఎందుకు క్యూ ఎగువన మొదటి ఏమిటి? ఆ గడిచిపోయింది? [Hardison] ఇది కింది నుంచి నాలుగో నుండి వస్తుంది. మేము మా క్యూ, ఖాళీగా లేదు నిర్ధారించుకోండి పరీక్ష తరువాత మేము మొదటి చార్ * లో అక్కడ, మేము తల సూచిక వద్ద కూర్చొని చేసే మూలకం వెలికితీసి మా శ్రేణి యొక్క, మా తీగలను అర్రే, >> మరియు కాల్ మొదటి యొక్క? [Hardison] మరియు ఇది మొదటి కాల్. అవును. ఆ న అనుసరించాల్సి, ఎందుకు మీరు మేము అలా వచ్చింది అనుకుంటున్నారు? [సామ్] ప్రతి మొదటి కేవలం q.strings తిరిగి [q.head]? >> అవును. >> మేము mod ఫంక్షన్ తో q.head ఈ మారుతున్న చేస్తున్నా కాబట్టి, మరియు కూడా తిరిగి లైన్ లో ఆ విధంగా చేయడానికి మార్గమే లేదు. [Hardison] ఖచ్చితంగా. మీరు స్పాట్ ఉన్నారు. సామ్ పూర్తిగా న గుర్తు. మేము మా క్యూ లో మొదటి మూలకం బయటకు లాగి వేరియబుల్ గా నిల్వ వచ్చింది కారణం మేము ఈ లైన్ q.head చేసిన ఎందుకంటే, ఉంది అక్కడ లో mod ఆపరేటర్లు మేము విషయం లేదు యొక్క మరియు అది లేకుండా తలపై ప్రభావితం చేసిన - ఒక లైన్ లో. మేము నిజంగా మొదటి మూలకం తీసివేస్తామని కలిగి ఉంటారు, అప్పుడు, తల సర్దుబాటు పరిమాణం సర్దుబాటు, మరియు అప్పుడు మేము వైదొలగిన ఆ మూలకం తిరిగి. మరియు ఈ మేము తరువాత ఆలోచన చూస్తారు విషయం లింక్ జాబితాలు, మేము వారితో చుట్టూ ప్లే వంటి. మీరు లింక్ జాబితాలు యొక్క విడుదల లేదా పారవేయడం చేస్తున్న ఎక్కువగా మీరు తదుపరి మూలకం, అనుబంధ జాబితా యొక్క తదుపరి పాయింటర్ గుర్తుంచుకోవాల్సిన అవసరం ప్రస్తుత ఒక పారవేసేందుకు ముందు. ఎందుకంటే లేకపోతే మీరు జాబితాలో వదిలి ఏది సమాచారం తీసివేసినట్లు. మీరు మీ ఉపకరణం వెళ్ళండి ఉంటే ఇప్పుడు, మీరు ఈ యొక్క queue.c--x అవుట్ అప్ తెరవండి. నేను queue.c ప్రారంభం చేస్తే, ఇక్కడ నాకు జూమ్ తెలియజేయండి మీరు ఒక ఒకేలా కనిపించే ఫైలు కలిగి చూస్తారు. మేము stack.c తో క్రితం ఏమి సారూప్య ఫైలు. మేము స్లయిడ్లను చూసిన వంటి కేవలం నిర్వచించిన క్యూ కోసం మా struct పొందారు. మేము మీరు కోసం ఇది మా ఎన్క్యూ చర్య. మరియు మేము ఇక్కడ dequeue చర్య. ఫైల్ లో dequeue ఫంక్షన్ అమలు కాలేదు ఉంది, మీరు కావాలనుకుంటే మీరు, లో టైపు చేయవచ్చు అయితే నేను PowerPoint తిరిగి ఏర్పాటు చేస్తాము. తరువాత 5 నిమిషాలు లేదా, మీరు అబ్బాయిలు ఎన్క్యూ పని ఇది దాదాపుగా dequeue వ్యతిరేకం. మీరు enqueueing చేసినప్పుడు తల సర్దుబాటు లేదు, కానీ మీరు సర్దుబాటు చెయ్యాలి? సైజు. కాబట్టి మీరు ఎన్క్యూ, తల బాధింపబడని ఉంటాయి ఉన్నప్పుడు, పరిమాణం మార్చబడింది తీర్చుకుంటాడు. అయితే కొంత సమయం పడుతుంది - మీరు ఆ mod తో చుట్టూ ప్లే ఉంటుంది కొత్త మూలకం వద్ద చొప్పించడానికి ఏ ఇండెక్స్ సరిగ్గా గుర్తించడానికి. నేను మీరు అబ్బాయిలు కొద్దిగా ఇస్తాము,, స్లయిడ్ తిరిగి అప్ dequeue ఉంచండి మరియు మీరు అబ్బాయిలు ప్రశ్నలు ఉంటే, తద్వారా మేము వాటిని అరవండి సమూహం వంటి వాటి గురించి అన్ని చర్చ. అలాగే, మీరు don't పరిమాణం తో - మీరు పరిమాణం సర్దుబాటు చేసినప్పుడు, మీరు ఎల్లప్పుడూ కాదు - మీరు పరిమాణం అంటే ఉన్నాయి? [డేనియల్] నం >> మీరు పరిమాణం MoD హక్కు లేదు. You're ఉంటే ఎందుకంటే పరిమాణం ఎల్లప్పుడూ ఉంటుంది - ఊహిస్తూ మీరు, తగిన విషయాలు మేనేజింగ్ చేస్తున్నారు పరిమాణం ఎల్లప్పుడూ 0 మరియు 3 మధ్య ఉంటుంది. ఎక్కడ మీరు ఎన్క్యూ చేయడం చేసినప్పుడు అంటే ఉన్నాయి? కేవలం తల [స్టూడెంట్]. కేవలం తల >>, సరిగ్గా. మీరు ఎందుకు ఎన్క్యూ అన్ని వద్ద MoD చేయాలి? మీరు అంటే కలిగి కోరుతున్న పరిస్థితి ఏమిటి? మీరు ప్రదేశాలలో stuff ఉంటే [స్టూడెంట్],, స్పేస్ 1 మరియు 2 వద్ద ఇష్టం మరియు తర్వాత మీరు 0 వద్ద ఏదో జోడించడానికి అవసరం. [Hardison] అవును, సరిగ్గా. మీ తల పాయింటర్ చివరిలో ఉంది కనుక లేదా మీ పరిమాణం అదనంగా మీ తల పెద్ద ఉంటే, లేదా, క్యూ చుట్టూ అన్నారు. కాబట్టి మేము ఇప్పుడు స్లయిడ్ న ఇక్కడ పొందారు ఈ పరిస్థితిలో, నేను, ప్రస్తుతం ఏదో ఎన్క్యూ అనుకుంటే మేము ఇండెక్స్ 0 వద్ద ఏదో ఎన్క్యూ మీరు. మీరు 50 వెళతాడు, అక్కడ చూడండి, మరియు నేను ఎన్క్యూ 50, కాల్ అయితే ఇది క్రింది వద్ద పని చెయ్యకపోతే. ఇది ఇండెక్స్ 0 వెళుతుంది. ఇది ఇప్పటికే dequeued ఆ 'హాయ్' తొలగించబడుతాయి. [డేనియల్] మీరు ఇప్పటికే dequeue ఆ యొక్క శ్రద్ధ వహించడానికి లేదా? ఎందుకు అది ఎన్క్యూ లో తల తో ఏదైనా చేస్తుంది? [Hardison] ఓహ్, కాబట్టి మీరు తల సవరించుట లేదు, క్షమించండి. కానీ మీరు ఆక్సెస్ చేసినప్పుడు mod ఆపరేటర్లు ఉపయోగించాలి మీరు ఆక్సెస్ చేసినప్పుడు ఎన్క్యూ చేయదలిచిన మూలకం మీ క్రమంలో తరువాతి మూలకం. [బాసిల్] నేను లేదు, మరియు నేను అక్కడ న "విజయం" వచ్చింది. [డేనియల్] ఓహ్, నేను మీరు ఏమి చెబుతున్నారో అర్థం. [Hardison] కాబట్టి మీరు didn't - మీరు q.size వద్ద చేశాడు? [బాసిల్] అవును. నేను మారుతాయి, నేను తల తో ఏమీ చేయలేదు. [Hardison] మీరు నిజంగా, ఏమీ తల రీసెట్ లేదు కానీ తీగలను శ్రేణి లోకి మీరు ఇండెక్స్, మీరు నిజంగా, ముందుకు వెళ్ళి, తరువాత మూలకం ఉన్న లెక్కించేందుకు కలిగి స్టాక్ withe ఎందుకంటే, మీ స్టాక్ తదుపరి మూలకం ఎప్పుడూ పరిమాణం సంబంధించి సూచిక వద్ద. మేము అప్ మా స్టాక్ పుష్ ఫంక్షన్ తిరిగి చూడాలని, ఉంటే మేము ఎల్లప్పుడూ సరైన సూచిక పరిమాణంలో మా కొత్త మూలకం లో plunk కాలేదు. క్యూ తో అయితే, మేము అలా కాదు మేము ఈ పరిస్థితి ఉన్నప్పుడు ఎందుకంటే, మేము వరుసలో ఉంటే 50 మా కొత్త స్ట్రింగ్ తీగలను [1] వద్ద కుడి పాటు ఇది నాకు ఇష్టం లేదు. మేము కొత్త స్ట్రింగ్ సూచిక 0 వద్ద వెళ్ళి కావాలి. డజ్ ఎవరైనా - అవును? [స్టూడెంట్] నేను ఒక ప్రశ్న కలిగి కానీ నిజంగా సంబంధించిన కాదు. ఎవరో ఇప్పుడే pred పాయింటర్ లాగ కాల్స్ అది అర్థం ఏమిటి? ఆ పేరు ఏమిటి కోసం చిన్న ఉంది? అది కేవలం ఒక పేరు నాకు తెలుసు. [Hardison] Pred పాయింటర్? యొక్క చూసేలా. ఏ సందర్భంలో? [స్టూడెంట్] చొప్పించు కోసం ఇది. మీరు అనుకుంటే నేను తరువాత మీరు అడగవచ్చు అది నిజంగా సంబంధించిన కాదు, అయితే నేను ఎందుకంటే - [Hardison] ఉపన్యాసం నుండి డేవిడ్ యొక్క ఇన్సర్ట్ కోడ్ నుండి? మేము ఆ పుల్ అప్ మరియు దాని గురించి మాట్లాడవచ్చు. మేము ఆ తర్వాత, ఒకసారి మేము అనుసంధాన జాబితాలు ను గురించి మాట్లాడదాము. కాబట్టి ఎన్క్యూ ఫంక్షన్ ఎలా చూడండి నిజంగా త్వరగా చూద్దాం. మీ ఎన్క్యూ లైన్ లో చేయడానికి ప్రయత్నించిన మొదటి విషయం ఏమిటి? ఈ క్యూ లోకి? మీరు నెట్టడం స్టాక్ కోసం ఏమి పోలి. మీరు స్టెల్లా, ఏం చేసావ్? [స్టెల్లా, అపారదర్శక] [Hardison] ఖచ్చితంగా. (== సామర్థ్యం q.size) ఉంటే - నేను స్థానంలో నా జంట కలుపులు ఉంచాలి - తప్పుడు తిరిగి. కొద్ది సేపట్లో జూమ్. సరే. ఇప్పుడు మేము వచ్చింది తర్వాత విషయం ఏమిటి? జస్ట్ స్టాక్ వలె, మరియు సరైన స్థలం వద్ద చేర్చబడుతుంది. అందువలన, ఇన్సర్ట్ చెయ్యడానికి సరైన స్థలం ఏమిటి? స్టాక్ తో అది లేదు చాలా ఆ ఈ తో, ఇండెక్స్ పరిమాణంలో. [డేనియల్] నేను q.head--లేదా - >> q.strings? >> అవును. q.strings [q.head + q.size mod సామర్థ్యం]? [Hardison] మేము ఈ చుట్టూ కుండలీకరణాలు ఉంచాలి కావలసిన మేము దారుణంగా cleart, అందుచే తగిన ప్రాధాన్యత పొందడం మరియు మీరు కనుక. మరియు సమాన సెట్? STR చేయడానికి >>? STR చేయడానికి >>. గ్రేట్. ఇప్పుడు మేము కలిగి లాస్ట్ థింగ్ ఏది? మేము స్టాక్ లో చేసినట్లుగా ఇష్టపడుతున్నారు. >> పరిమాణం పెంచడం? >> పరిమాణం పెంచడం. బూం. ఆపై, స్టార్టర్ కోడ్ నుండి కేవలం అప్రమేయంగా తప్పుడు తిరిగి మేము అన్ని గుండా వెళుతుంది మరియు అన్ని బాగా పోతే నిజమైన ఈ మార్చడానికి కావలసిన. అన్ని కుడి. ఆ విభాగానికి సమాచారం చాలా ఉంది. మేము చాలా పైగా లేదు. మేము ఒక్కొక్కటిగా లింక్డ్ జాబితాలు గురించి నిజంగా త్వరగా మాట్లాడు. నేను ఈ ఏర్పాటు చేస్తాము కనుక మేము తరువాత తిరిగి వెళ్ళవచ్చు. కానీ ఇంకా కొన్ని స్లయిడ్లను కోసం మా ప్రదర్శనను తిరిగి వదలి వేస్తారు. కాబట్టి ఎన్క్యూ TODO ఉంది, ఇప్పుడు మేము చేశాను. ఇప్పుడు ఒక్కొక్కటిగా లింక్డ్ జాబితాలు పరిశీలించి అనుమతిస్తుంది. మేము ఉపన్యాసంలో ఈ కొద్దిగా ఎక్కువ మాట్లాడారు. ప్రజలు కలిగి ఉన్న ఎన్ని మీరు guys యొక్క డెమో చూసిన వికారంగా ప్రతి ఇతర మరియు హోల్డింగ్ సంఖ్యలు సూచించే? >> నాకు ఉంది. >> మీరు అబ్బాయిలు ఏమనుకుంటున్నారు? అది, ఆశాజనక ఈ కొద్దిగా demystify? జాబితాను, అది మనం ఒక నోడ్ కాల్ చూడాలని ఉద్దేశ్యంతో ఈ రకం వ్యవహరించే అవుతుంది. క్యూ మరియు స్టాక్ తో అయితే మేము, మేము స్టాక్ లో క్యూ కాల్ భావిస్తున్నట్టు structs కలిగి మేము, స్టాక్ రకాల ఈ కొత్త క్యూ కలిగి ఇక్కడ ఒక జాబితా నిజంగా కేవలం నోడ్స్ యొక్క బంచ్ రూపొందించబడింది. తీగలను అక్షరాలు కేవలం కొంత అని అదే విధంగా అన్ని ప్రతి ఇతర పక్కన అతను ఆడాడు. అనుబంధ జాబితా ఒక నోడ్ మరియు మరొక నోడ్ మరియు మరొక నోడ్ మరియు మరొక నోడ్ ఉంది. మరియు బదులుగా కలిసి అన్ని ముక్కలు నోడ్స్ మరియు పక్కపక్కన వాటిని నిల్వ కంటే మెమరీ ప్రతి ఇతర హక్కు అన్ని తరువాత, ఈ తదుపరి పాయింటర్ కలిగి మాకు యాదృచ్ఛికంగా, నోడ్స్ ఎక్కడ నిల్వ అనుమతిస్తుంది. ఆపై WIRE రకం వాటిని అన్ని కలిసి ఒక నుంచి మరో మార్చాలి. మరియు ఈ వ్యూహం కలిగి పెద్ద ప్రయోజనం? నిల్వ అన్నిచోట్ల పక్కపక్కన కేవలం ఒకదాని తరువాత కష్టం? మీరు గుర్తు? Yeah? >> డైనమిక్ మెమరీ కేటాయింపు? ఏ కోణంలో >> డైనమిక్ మెమరీ కేటాయింపు? మీరు అది పెద్ద మరియు మీరు మీ మొత్త తరలించడానికి లేదు తయారు ఉంచుకోవచ్చు ఆ [స్టూడెంట్]? [Hardison] ఖచ్చితంగా. కాబట్టి వ్యూహం తో, మీరు దాని మధ్య ఒక కొత్త మూలకం ఉంచేందుకు ఉంటుంది, మీరు స్థలాన్ని ప్రతిదీ మార్చేందుకు ఉన్నాయి. మరియు వంటి మేము, క్యూ తో మాట్లాడారు మేము ఆ తల పాయింటర్ ఉంచడానికి ఎందుకు ఆ, మేము నిరంతరం విషయాలు బదిలీ లేదు కాబట్టి. మీరు ఒక పెద్ద అర్రే పొందారు ఉంటే ఆ ఖరీదైన గెట్స్ ఎందుకంటే మరియు మీరు ఎప్పుడు ఈ యాదృచ్చిక ప్రక్షిప్తాలు చేయుచున్నారు. జాబితాను అయితే, మీరు చేయాల్సిందల్లా, ఒక కొత్త నోడ్ మీద త్రో ఉంది గమనికలు సర్దుబాటు, మరియు మీరు పూర్తి చేసిన. ఈ గురించి సక్స్? మరోప్రక్క అది వ్యూహం పని చేయడం సులభం కాదు వాస్తవం నుంచి? Yeah? [డేనియల్] Well, నేను లింక్ జాబితాలో ఒక ప్రత్యేక ఎలిమెంట్ యాక్సెస్ చాలా కష్టం ఊహించడానికి? [Hardison] మీరు మీ లింక్ జాబితా మధ్యలో ఏకపక్ష మూలకం వెళ్లగలదు కాదు. ఎలా మీరు బదులుగా దీన్ని ఎందుకు చేయాలి? మీరు మొత్తం విషయం ద్వారా అడుగు కలిగి >>. [Hardison] అవును. మీరు ఒక సమయంలో ఒక, ఒక సమయంలో ఒక ద్వారా వెళ్ళాలి. ఇది ఒక భారీ - అది ఒక బాధాకరమైన వ్యక్తి. ఇతర ఏమిటి - ఈ మరొక దురదృష్టం ఉంది. [బాసిల్] మీరు ముందుకు మరియు వెనక్కి వెళ్ళి కాదు? మీరు ఒక దిశలో వెళ్ళాలి? [Hardison] అవును. కాబట్టి మేము ఎలా కొన్నిసార్లు, ఆ పరిష్కారం లేదు? [బాసిల్] జాబితాలు రెట్టింపైన-లింక్? ఖచ్చితంగా >>. రెట్టింపైన-లింక్ జాబితాలు ఉన్నాయి. కూడా ఉన్నాయి - క్షమించాలి? [సామ్] ఆ pred విషయం ఉపయోగించి కూడా లేదు - నేను జ్ఞాపకం, pred విషయం కోసం అదే కాదు? కాదు రెట్టింపైన మరియు ఒక్కొక్కటిగా మధ్య? తాను చేస్తున్న సరిగ్గా అదే సమయంలో [Hardison] లెట్స్ లుక్. కాబట్టి ఇక్కడ వెళ్ళండి. ఇక్కడ జాబితా కోడ్ యొక్క. ఇక్కడ మేము ఇక్కడ, predptr ఉన్నాయి. మీరు గురించి మాట్లాడుతూ ఈ ఉంది? కాబట్టి ఈ ఉన్నారు - ఇందులో జాబితా విడుదల చేసిన మరియు అతను అది ఒక పాయింటర్ నిల్వ ప్రయత్నిస్తున్నాడు. ఈ రెట్టింపైన, ఒక్కొక్కటిగా లింక్-జాబితాలు కాదు. ఈ మాట్లాడుతున్నారో నుండి మేము జాబితా విడుదల గురించి తరువాత దీని గురించి మరింత మాట్లాడవచ్చు మరియు నేను మొదటి కొన్ని ఇతర అంశాలు చూపాలనుకుంటున్న. కానీ అది కేవలం - అది PTR విలువ గుర్తు యొక్క [స్టూడెంట్] ఓహ్, ఇది preceeding పాయింటర్ ఉంది? >> అవును. మేము అప్పుడు predptr ఉంది అప్పుడు ఉచిత ముందు PTR కూడా పెంచడం చేయవచ్చు. మేము అప్పుడు ఉచిత PTR మరియు కాల్ PTR = PTR తరువాత, కుడి? కాదు ఎందుకంటే ఆ చెడు ఉంటుంది. కాబట్టి ఈ గై కు, యొక్క చూసేలా. జాబితాలు గురించి ఇతర చెడ్డ విషయం అని వ్యూహం తో అయితే మేము, తాము ప్రతి ఇతర పక్కన అమర్చినట్లు అన్ని మూలకాలు ఇక్కడ మేము కూడా ఈ పాయింటర్ ప్రవేశపెట్టారు. కాబట్టి మేము ఉపయోగించడానికి సమస్య ఆ మెమరీ అదనపు భాగం ఉంది మేము మా జాబితాలో నిల్వ చేస్తున్న ప్రతి మూలకం కోసం. మేము వశ్యత పొందుతారు కాని అది ఖర్చుతో వస్తుంది. ఇది ఈ సమయం ధర వస్తుంది మరియు ఇది చాలా ఈ మెమరీ ధర వస్తుంది. మేము ఇప్పుడు యెరే నందలి ప్రతి మూలకం ద్వారా వెళ్ళాలి కోణంలో సమయం ఇండెక్స్ 10 వద్ద ఒకటి, లేదా ఆ వ్యూహంలో ఇండెక్స్ 10 ఉండేది కనుగొనేందుకు. జస్ట్ నిజంగా త్వరగా, మేము రేఖాచిత్రం ఈ జాబితాలు, సాధారణంగా మేము జాబితా యొక్క తల లేదా జాబితా యొక్క మొదటి పాయింటర్ పట్టు మరియు ఈ నిజమైన పాయింటర్ గా గమనించండి. ఇది కేవలం 4 బైట్లు ఉంది. ఇది ఒక వాస్తవ నోడ్ కూడా కాదు. కాబట్టి మీరు ఇది ఏ Int విలువ, అది రాబోయే పాయింటర్ కలిగి చూడండి. ఇది అక్షరాలా ఒక పాయింటర్ ఉంది. ఇది ఒక వాస్తవ నోడ్ struct అని ఏదో సూచించడానికి జరగబోతోంది. [సామ్] కణుపు అని పిలిచే ఒక పాయింటర్? >> ఈ - ఏ. ఈ రకం నోడ్ యొక్క ఏదో ఒక పాయింటర్ ఉంది. ఇది ఒక నోడ్ struct ఒక పాయింటర్ ఉంది. >> ఓహ్, ఓకే. ఎడమ వైపున, కోడ్ న రేఖాచిత్రం. మేము ప్రారంభించడానికి ఒక మంచి మార్గం ఇది శూన్య, దానిని సెట్ చేయవచ్చు. మీరు రేఖాచిత్రం ఇది ఆ విధంగా మీరు గాని అది శూన్య వ్రాయండి లేదా మీరు ద్వారా లైన్ ఉంచండి. జాబితాలు పని సులభమైన మార్గాలు ఒకటి, మరియు మేము, మీరు రెండు prepend లేదు అడగండి రెండు మధ్య తేడాలు చూడటానికి జోడించు కానీ prepending ఖచ్చితంగా సులభం. పేరు మీరు prepend, ఈ ఉంది - మీరు prepend (7), మీరు నోడ్ struct వెళ్ళి సృష్టించడానికి మరియు మీరు, ఇప్పుడు మేము ఇది prepended నుండి, ఇది సూచించడానికి మొదటి సెట్ ఇది జాబితా ప్రారంభంలో చేస్తాడు. మేము మరొక నోడ్ సృష్టిస్తుంది prepend (3), కానీ ఇప్పుడు 3 7 ముందు వస్తుంది ఉంటే. కాబట్టి మేము తప్పనిసరిగా మా జాబితా లో విషయాలను నెట్టడం చేస్తున్నారు. ఇప్పుడు, మీరు, prepend, కొన్నిసార్లు దీన్ని పుష్ కాల్ ఆ చూడగలరు ఎందుకంటే మీరు మీ జాబితా లో కొత్త మూలకం నెట్టడం చేస్తున్నారు. ఇది ఒక జాబితా ముందు వద్ద తొలగించడానికి కూడా సులభం. కాబట్టి ప్రజలు తరచుగా ఆ పాప్ కాల్ చేస్తుంది. ఆ విధంగా, మీరు ఒక లింక్ జాబితా ఉపయోగించి స్టాక్ అనుకరిస్తుంది. అయ్యో. క్షమించాలి, ఇప్పుడు మేము append లోకి చేస్తున్నారు. కాబట్టి ఇక్కడ మేము prepend (3) ఇప్పుడు, (7) prepended. మేము prepended మేము (4), ఈ జాబితా లో ఏదో prepended, అప్పుడు మేము 4 ఉంటాయి మరియు తరువాత 3 మరియు తరువాత 7 మీరు. కాబట్టి అప్పుడు మేము పాప్ మరియు తీసివేయి 3, 4 తొలగించండి, 7 తొలగించండి. తరచుగా ఈ ఆలోచించడానికి మరింత స్పష్టమైన మార్గం append తో ఉంది. నేను దాన్ని ఇక్కడ జోడించు తో వంటి చూస్తారు ఏమిటో రేఖాచిత్రించబడింది చేసిన. ఇక్కడ, అనుబంధంగా (7) ఏ వివిధ కనిపించడం లేదు ఎందుకంటే జాబితా మాత్రమే మూలకం ఉంది. మరియు అనుమతిస్తూ (3) చివరలో దానిని. బహుశా మీరు ప్రస్తుతం append తో ట్రిక్ చూడగలరు ఆ, జాబితా ప్రారంభం ఉన్న మేము మాత్రమే తెలుసు కాబట్టి మీరు జాబితా ద్వారా అన్ని మార్గం నడిచిన కలిగి జాబితాను జోడించే చివరికి ను ఆపడానికి, అప్పుడు మీ నోడ్ మరియు డౌన్ plunk ప్రతిదీ నిర్మించడానికి. అన్ని అంశాలను అప్ WIRE. కాబట్టి prepend తో, వంటి, మనం కేవలం నిజంగా త్వరగా ఈ ద్వారా ఆవిర్భవించినది మీరు ఒక జాబితాకు prepend, అది చాలా సులభం. మీరు మీ కొత్త నోడ్ తయారు, కొన్ని డైనమిక్ మెమరీ కేటాయింపు వంటివి. కాబట్టి ఇక్కడ malloc ఉపయోగించి ఒక నోడ్ struct మీరు చేస్తున్నారు. Malloc కాబట్టి ఆ తర్వాత మాకు మెమరీ పక్కన పెట్టింది చేస్తాము ఎందుకంటే ఇక్కడ మేము ఈ అనుకుంటున్న ఎందుకంటే - ఈ మెమరీ ఎక్కువ కాలం అంటిపెట్టుకుని మీరు. మరియు మేము కేవలం కేటాయింపుకు మెమరీలో స్పేస్ ఒక పాయింటర్ పొందండి. మేము నోడ్ యొక్క పరిమాణాన్ని ఉపయోగిస్తుంది, మేము ఖాళీలను సంకలనం లేదు. మేము మాన్యువల్గా, బైట్లు సంఖ్య ఉత్పత్తి లేదు బదులుగా మేము మేము బైట్లు సరైన సంఖ్య చేస్తున్నారు తెలుసు కాబట్టి sizeof ఉపయోగించండి. మేము మా malloc కాల్ విజయవంతమైన పరీక్షించడానికి నిర్ధారించుకోండి. మీరు సాధారణంగా చేయాలనుకుంటున్నారా విషయం. ఆధునిక యంత్రాల్లో, మెమరీ నడుస్తున్న సులభం విషయం కాదు మీరు stuff ఒక టన్ను పెడుతోంది మరియు భారీ జాబితా చేస్తున్న తప్ప, కానీ మీరు ఒక ఐఫోన్ లేదా ఒక Android వంటి సే,, విషయాలను నిర్మించడం చేస్తుంటే, మీరు తీవ్రమైన ఏదో చేస్తున్నా ముఖ్యంగా మీరు, పరిమిత మెమరీ వనరులు ఉన్నాయి. కాబట్టి ఆచరణలో పొందడానికి మంచి ఇది. నేను ఇక్కడ ఒక జంట వేర్వేరు విధులను ఉపయోగిస్తారు చేసిన గమనించండి మీరు కొత్త రకం అని చూసిన ఆ. కాబట్టి fprintf కేవలం printf వంటిది మొదటి వాదన తప్ప మీరు ముద్రించడానికి చేయండి స్ట్రీమ్ ఉంది. ఈ సందర్భంలో, మనం ప్రామాణిక తప్పు స్ట్రింగ్ ముద్రించవచ్చు మీరు ఇది ప్రామాణిక outstream భిన్నంగా ఉంటుంది. అప్రమేయంగా ఒకే స్థానంలో కనిపిస్తుంది. ఇది టెర్మినల్ కు ముద్రిస్తుంది, కానీ మీరు కాదు - ఆ ఆదేశాలను ఉపయోగించి మీరు గురించి, దారిమళ్ళింపు పద్ధతులు నేర్చుకున్నాడు మీరు సమస్య సెట్ 4 కోసం టామీ యొక్క వీడియో లో నేర్చుకున్న, మీరు ఇది ప్రత్యక్ష చేయవచ్చు వేర్వేరు ప్రాంతాల్లో; అప్పుడు నిష్క్రమిస్తుంది మీ ప్రోగ్రామ్, ఇక్కడ, నిష్క్రమించి. ఇది ప్రధాన నుండి తిరిగి వంటి తప్పనిసరిగా ఉంది ఇక్కడ తిరిగి ఏమీ లేదు ఎందుకంటే మేము నిష్క్రమణ ఉపయోగించడానికి తప్ప. మేము ప్రధాన లేదు, కాబట్టి తిరిగి మేము మీరు వంటి కార్యక్రమ నిష్క్రమించడానికి లేదు. కాబట్టి మేము నిష్క్రమణ క్రియాశీలతను ఉపయోగించదు మరియు ఇది ఒక లోపం కోడ్ ఇస్తుంది. ఇక్కడ మేము నేను సమానంగా కొత్త నోడ్ యొక్క విలువ రంగంలో, దాని i రంగంలో సెట్, మరియు అప్పుడు మేము దానిని వైర్. మేము, మొదటి సూచించడానికి కొత్త నోడ్ యొక్క తదుపరి పాయింటర్ సెట్ మరియు తర్వాత మొదటి ఇప్పుడు కొత్త నోడ్ కు ఆకర్షిస్తాయి. కోడ్ యొక్క ఈ మొదటి లైన్లు, మేము నిజంగా కొత్త నోడ్ నిర్మించడం చేస్తున్నారు. ఈ చర్యను చివరి రెండు పంక్తులు కానీ మొదటి వ్యక్తులతోపాటు. మీరు అసలైన helper ఫంక్షన్ లో, ఒక ఫంక్షన్ లో వెలికితీసి చేయవచ్చు. తరచుగా నేను చేసేది, నేను, ఒక ఫంక్షన్ లో వెలికితీసి నేను బిల్డ్ నోడ్ లో లాగ, కాల్ మరియు ఆ prepend ఫంక్షన్ అందంగా చిన్న ఉంచుతుంది, అది కేవలం 3 లైన్లు తర్వాత ఉంది. నా బిల్డ్ నోడ్ కు కాల్, మరియు పైకి నేను WIRE ప్రతిదీ. నేను మీరు చూపాలనుకుంటున్న చివరి విషయం, మరియు నేను, మీరు మీ స్వంత append మరియు అన్ని అలా తెలియజేస్తాము జాబితా పై iterate ఎలా. జాబితా పై iterate వివిధ మార్గాల్లో అక్కడ చాలా ఉన్నాయి. ఈ సందర్భంలో, మనం ఒక జాబితా పొడవు కనుగొనేందుకు వెళుతున్న. కాబట్టి మేము పొడవు = 0 ప్రారంభం. ఈ స్ట్రింగ్ కోసం strlen రాయడం చాలా పోలి ఉంటుంది. ఈ నేను ఇక్కడ లూప్ ఈ, మీరు చూపాలనుకుంటున్న ఏమిటి. ఇది ఎంతో అల్లరిగా ఉంది; ఇది సాధారణమైన కాదు Int i = 0, i <ఏమైనా + +. దానికి జాబితా ప్రారంభమని మా వేరియబుల్ n ప్రారంభించడం యొక్క. మా ఇటెరేటర్ వేరియబుల్ శూన్య కాదు మరియు తరువాత, మేము కొనసాగించడాన్ని. సాంప్రదాయకంగా, మా జాబితా ముగింపు శూన్య ఉంటుంది, ఎందుకంటే. ఆపై, బదులుగా + + చేయడం కంటే, పెంచడం + యొక్క లింక్ జాబితా సమానమైన + n = N-> తదుపరి ఉంది. మేము సమయం లేదు ఎందుకంటే నేను మీరు ఇక్కడ ఖాళీని పూరించడానికి తెలియజేస్తాము. మీరు మీ spellr psets పని కానీ ఈ విషయాన్ని మనస్సులో ఉంచుకోవాలి. లింక్ జాబితాలు, మీరు ఒక హాష్ పట్టిక అమలు చేస్తుంటే, ఖచ్చితంగా చాలా ఉపయోగకరంగా ఉండగలదో. మరియు విషయాలు మీద మళ్ళీ వెతికినా ఈ జాతీయం కలిగి ఆశాజనక, చాలా సులభంగా జీవితం చేస్తుంది. ఏదైనా ప్రశ్నలు, త్వరగా? [సామ్] మీరు పూర్తి SLL మరియు SC అవుట్ పంపుతుంది? [Hardison] అవును. నేను పూర్తి స్లైడ్లు మరియు పూర్తి SLL స్టాక్ మరియు queue.cs అవుట్ పంపుతాము. [CS50.TV]