פורסם 2012 במרץ 2713 שנים היי יכולם1. יש לי מערך של מבנים שכל מבנה כולל מספר ומחסנית , בזמן השוואה בין שני איברים במערך אני מכניסה למחסנית של האיבר הגדול את האיבר שקטן ממנו , אבל לפני זה אני צריכה לבדוק שהאיבר שאני מכניסה יותר גדול מהאיבר שכבר יש במחסנית (של הגדול). אני צריכה לעשות את זה בלי להוציא את האיבר שכבר יש לי במחסנית כי אני עדיין צריכה אותו שם להמשך התוכנית (להשוואות הבאות) . איך עושים את זה?
פורסם 2012 במרץ 2813 שנים בד"כ מספקים למחסנית פונקציית top שמאפשרת לראות מהו האיבר העליון בלי להוציא אותו.
פורסם 2012 במרץ 2813 שנים לא ממש. מחסנית היא לא חלק סטנדרטי משפת C, זה תלוי במימוש הספציפי של מחסנית שאת משתמשת בו.
פורסם 2012 במרץ 2813 שנים מחבר typedef Element* Stack; // initializationStack initStack(){ Stack st=initList(); return st;}// pop to stackvoid* Pop(Stack st){ void* item=retriveFromList(st->next); deleteFromList(st, st->next); return item;}// top to stackvoid* Top(Stack st){ return retriveFromList(st->next);}// push from stackvoid Push(Stack st, void *item){ insertToList(st, item);}// is stack emptyint stackEmpty(Stack st){ return st->next==NULL;}// delete stackvoid deleteStack(Stack st){ while(!stackEmpty(st)) Pop(st);}// copy stack & size of item in byteStack copyStack(Stack s, int sizeElement){ Stack tmp=initStack(), ast=initStack(); while(!stackEmpty(s)) Push(tmp, Pop(s)); while(!stackEmpty(tmp)){ void *x=Pop(tmp); void *y=(void*)malloc(sizeElement); memcpy(y, x, sizeElement); Push(s, x); Push(ast, y); } return ast;}#endif
פורסם 2012 במרץ 2813 שנים נו - בקוד שנתת יש פונקציית Top. תסתכלי על החתימה שלה ותביני איך משתמשים בה. אם זה לא ברור לך, תשווי אותה לחתימה של Pop ותחשבי איך משתמשים בה.וכמו שנאמר מעליי - תערכי את ההודעה ושימי את הקוד בתוך טג קוד.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.