int main(void){ List *p=NULL; p=addHead(p,"def"); p=addHead(p,"abc"); p=addTail(p,"xyz"); p=sortedaddNode(p,"opq"); p=sortedaddNode(p,"lmn"); p=sortedaddNode(p,"uvm"); disp(p); printf("\n"); p=delNode(p,"opq"); dispReverse(p); return 0; }
void SingleLinkedList<T>::insert(int pos, T val){ if (IsEmpty()){ addHead(val); } else{ Node* temp = new Node; temp->pNext = NULL; temp->data = val; Node *left = new Node; Node *right = new Node; right = pHead; left = pHead; int iCount = 0; while ((right->pNext != NULL) && (iCount < pos)){ right = right->pNext; left = right; iCount++; } left->pNext = temp; if (temp->pNext = pHead) temp->pNext = NULL; else temp->pNext = right; //ptail if (pTail->pNext == NULL) return; else pTail = pTail->pNext; } }
struct Lnode *add_node_to_payload(uint32_t value, struct Lnode *gadget, char *string0, char *string1, char *string2, struct Lnode *existing_node){ struct Lnode *new_node; payload_gadget_t *payload_node_ptr; new_node = createLnode(payload); payload_node_ptr = GETPOINTER(new_node, payload_gadget_t); /* if(GETPOINTER(gadget, Gadget_t)->instruction->instr_type == INS_RET){ TODO < rename registers > } */ payload_node_ptr->value = value; payload_node_ptr->gadget = gadget; payload_node_ptr->strings[0] = string0; payload_node_ptr->strings[1] = string1; payload_node_ptr->strings[2] = string2; if(existing_node){ return addBefore(payload, new_node, existing_node); } else{ addHead(payload, new_node); return 0; } }
// add x at position k // 0 <= k (< getQSize(q)) // !filled(q) void addElem(Queue q, SQueue x, int k){ int i; if (k >= getLength(q)) addTail(q, x); else if (k==0) addHead(q, x); else { if (k >= getLength(q)/2) { for (i=getLength(q)-1; i>=k; i--) { setElem(q, getElem(q, i), i+1); } setElem(q, x, i+1); setQTail(q, getQTail(q)+1); } else { for (i=0; i<k; i++) { setElem(q, getElem(q, i), i-1); } setElem(q, x, i-1); setQHead(q, getQHead(q)-1); if (getQHead(q)<0) { setQHead(q, getQSize(q)+getQHead(q)); setQTail(q, getQTail(q)+getQSize(q)); } } } }
//------------------------------------------------------------------------------ // addHead(Object*) -- Adds an item to the head of the list. //------------------------------------------------------------------------------ void List::addHead(Object* const obj) { if (obj == nullptr) return; Item* d = new Item; d->value = obj; obj->ref(); addHead(d); }
List *addTail(List *head, char *ss){ List *p, *p1; if(head == NULL)return addHead(head,ss); p=head; while(p->next != NULL)p=p->next; p1=list_create(ss); p->next=p1; return head; }
List *addTail(List *head, int num){ List *p, *p1; if(head == NULL)return addHead(head,num); p=head; while(p->next != NULL)p=p->next; p1=list_create(num); p->next=p1; p1->before=p; return head; }
static void note_frame_usage(PGR_Cam *pgcp, dc1394video_frame_t *framep) { Node *np; np=mk_node(framep); if( pgcp->pc_in_use_lp == NULL ) pgcp->pc_in_use_lp = new_list(); addHead(pgcp->pc_in_use_lp,np); }
List *sortedaddNode(List *head, char *ss){ char s=ss[0]; List *p=head,*f=head; while(p->next != NULL && strcmp(p->str,ss)<0){ f=p; p=p->next; } if(f==p && p->next!=NULL)return addHead(p,ss); f->next=NULL; f=addTail(f,ss); f->next->next=p; return head; }
void SingleLinkedList<T>::addTail(T val){ Node* temp = new Node; temp->data = val; temp->pNext = NULL; if (temp != NULL){ if (IsEmpty()) addHead(val); else{ pTail->pNext = temp; pTail = temp; } } else cout << "Khong the chen " << val << " vao danh sach" << endl; }
char* WPLSentence::get(char str[], size_t buflen) const { if (str == NULL || buflen < MAX_SENTENCE_LENGTH) return NULL; addHead(str); strcat(str, ","); char* p = strend(str); pointToString(waypoint, p); strcat(p, ","); strcat(p, name); return addChecksum(str); }
//------------------------------------------------------------------------------ // insert(Item*) -- insert a new item before 'refItem'. If 'refItem' is // null(0), the new item is added to the tail of the list. //------------------------------------------------------------------------------ bool List::insert(List::Item* newItem, List::Item* refItem) { bool ok = true; if (refItem != nullptr) { if (refItem == headP) { addHead(newItem); } else { newItem->previous = refItem->previous; refItem->previous = newItem; newItem->previous->next = newItem; newItem->next = refItem; num++; } } else { addTail(newItem); } return ok; }
char* RSASentence::get(char str[], size_t buflen) const { if (str == NULL || buflen < MAX_SENTENCE_LENGTH) return NULL; addHead(str); strcat(str, ","); char* p = strend(str); ftoa(starboardRudderAngle, p, 1); strcat(str, ",A,"); p = strend(str); ftoa(portRudderAngle, p, 1); strcat(str, ",A"); return addChecksum(str); }
void SingleLinkedList<T>::quickSort(){ Node *temp, *temp2; SingleLinkedList l1, l2; if (pHead == pTail) return; temp = pHead; pHead = pHead->pNext; while (pHead != NULL){ temp2 = pHead; if (temp2->data >= temp->data){ l1.addHead(temp2->data); removeHead(); } else{ l2.addHead(temp2->data); removeHead(); } } l1.quickSort(); l2.quickSort(); SListAppend(l1); addHead(temp->data); SListAppend2(l2); }
void add_to_panel(Panel_Obj *po, Screen_Obj *sop) // for X11 { addHead(PO_CHILDREN(po),mk_node(sop)); SET_SOB_PARENT(sop, po); }
void make_picker(QSP_ARG_DECL Screen_Obj *sop) { #ifdef HAVE_MOTIF int j; Arg al[20]; int ac = 0; Screen_Obj *b_sop; /* button ptr */ char buf[6]; int n; const char **stringlist; if( SOB_N_CYLINDERS(sop) != 1 ){ sprintf(ERROR_STRING,"picker %s needs %d components, but we're only implementing 1!?", SOB_NAME(sop),SOB_N_CYLINDERS(sop)); WARN(ERROR_STRING); } n= SOB_N_SELECTORS_AT_IDX(sop,/*component*/ 0 ); sop->so_frame = generic_frame(curr_panel->po_panel_obj, sop, XmSHADOW_IN); XtSetArg(al[ac], XmNentryClass, xmToggleButtonWidgetClass); ac++; strcpy(buf,"name"); sop->so_obj = XmCreateRadioBox(sop->so_frame, buf, al, ac); XtManageChild(sop->so_obj); #ifdef CAUTIOUS if( sop->so_children != NO_LIST ){ sprintf(ERROR_STRING,"CAUTIOUS: Picker %s already has a child list!?",SOB_NAME(sop)); ERROR1(ERROR_STRING); } #endif /* CAUTIOUS */ SET_SOB_CHILDREN(sop,new_list()); stringlist = SOB_SELECTORS_AT_IDX(sop,0); // The choices are created as screen_objs, we // need to create a special context for them so that we // can have the same choices in multiple pickers and choosers // The context name should be the concatenation of the current // scrnobj context, and the name of this widget... push_widget_context(QSP_ARG sop); for(j=0; j<n; j++) { b_sop = simple_object(QSP_ARG stringlist[j]); if( b_sop==NO_SCREEN_OBJ ) return; b_sop->so_action_text = savestr(stringlist[j]); b_sop->so_parent = sop; b_sop->so_flags |= SOT_MENU_ITEM; /* The choices need to be part of the panel list (so we can find them * with find_object), but also on the parent list, so we can find them * through it... */ addHead(curr_panel->po_children,mk_node(b_sop)); addTail(sop->so_children,mk_node(b_sop)); b_sop->so_obj = XtCreateManagedWidget( b_sop->so_name, /* widget name */ xmToggleButtonWidgetClass, /* widget class */ sop->so_obj, /* parent widget */ NULL, 0); fix_names(QSP_ARG b_sop,sop); /* client data */ XtAddCallback(b_sop->so_obj, XmNvalueChangedCallback, chooser_func, NULL); XtManageChild(b_sop->so_obj); } pop_scrnobj_context(SINGLE_QSP_ARG); SET_SOB_HEIGHT(sop, CHOOSER_HEIGHT + CHOOSER_ITEM_HEIGHT*n ); #endif /* HAVE_MOTIF */ }
CompGachaBtn::CompGachaBtn(CompGachaInfo *info,CCObject* target, SEL_CallFuncO selector) { isExchangeAble = true; m_compGachaInfo = info; m_pListener = target; m_pfnSelector = selector; int lines ; if(info->material->count()%3 ==0) lines=info->material->count()/3; else lines = info->material->count()/3+1; int scaleY = CELLHEIGHT*lines; if(lines == 1)//如果只有一行,给以按钮空间 { scaleY += EXCHANGEBTNHEIGHT; } cardLines = lines; btnBgTop = CCSprite::spriteWithFile("cg_panel_1.png"); CCPoint point = btnBgTop->getPosition(); this->addChild(btnBgTop); btnBgMiddle = CCSprite::spriteWithFile("cg_panel_2.png"); btnBgMiddle->setScaleY(scaleY); point.y-=btnBgTop->getContentSize().height/2+btnBgMiddle->getContentSize().height/2*scaleY; btnBgMiddle->setPosition(point); this->addChild(btnBgMiddle); btnBgBottom = CCSprite::spriteWithFile("cg_panel_3.png"); point.y-=btnBgMiddle->getContentSize().height/2*scaleY+btnBgBottom->getContentSize().height/2; btnBgBottom->setPosition(point); this->addChild(btnBgBottom); char buf[100]; long long time = m_compGachaInfo->rest_exchange_time; if(time>24*60*60) sprintf(buf,CGameData::Inst()->getLanguageValue("compGachaTip1"),time/(24*60*60)); if(time>60*60&&time<24*60*60) sprintf(buf, CGameData::Inst()->getLanguageValue("compGachaTip2"),time/(60*60)); if(time>60&&time<60*60) sprintf(buf, CGameData::Inst()->getLanguageValue("compGachaTip3"),time/60); exchangeCountDown = TextNode::textWithString(buf, 20); addChild(exchangeCountDown); exchangeCountDown->setColor(ccc3(255, 227, 70)); exchangeCountDown->setPosition(ccp(-100, 0)); //exchangeCountDown->setColor() sprintf(buf, CGameData::Inst()->getLanguageValue("compGachaTip4"),info->claimTimes); if(info->claimTimes == -1) { sprintf(buf,"%s",CGameData::Inst()->getLanguageValue("compGachaTip5")); } exchangeTimes = TextNode::textWithString(buf, 20); addChild(exchangeTimes); exchangeTimes->setColor(ccc3(255, 227, 70)); exchangeTimes->setPosition(ccp(155, 0)); addHead(); }
void add_to_navp(Nav_Panel *np_p, Screen_Obj *sop) // for X11 { addHead(PO_CHILDREN(np_p->np_po),mk_node(sop)); SET_SOB_PARENT(sop, np_p->np_po); }
void make_chooser(QSP_ARG_DECL Screen_Obj *sop, int n, const char **stringlist) { #ifdef HAVE_MOTIF int j; Arg al[20]; int ac = 0; Screen_Obj *b_sop; /* button ptr */ char buf[6]; sop->so_frame = generic_frame(curr_panel->po_panel_obj, sop, XmSHADOW_IN); XtSetArg(al[ac], XmNentryClass, xmToggleButtonWidgetClass); ac++; strcpy(buf,"name"); sop->so_obj = XmCreateRadioBox(sop->so_frame, buf, al, ac); XtManageChild(sop->so_obj); #ifdef CAUTIOUS if( sop->so_children != NO_LIST ){ sprintf(ERROR_STRING,"CAUTIOUS: Chooser %s already has a child list!?",SOB_NAME(sop)); ERROR1(ERROR_STRING); } #endif /* CAUTIOUS */ SET_SOB_CHILDREN(sop,new_list()); push_widget_context(QSP_ARG sop); for(j=0; j<n; j++) { b_sop = simple_object(QSP_ARG stringlist[j]); if( b_sop==NO_SCREEN_OBJ ) return; b_sop->so_action_text = savestr(stringlist[j]); b_sop->so_parent = sop; b_sop->so_flags |= SOT_MENU_ITEM; /* The choices need to be part of the panel list (so we can find them * with find_object), but also on the parent list, so we can find them * through it... */ addHead(curr_panel->po_children,mk_node(b_sop)); addTail(sop->so_children,mk_node(b_sop)); b_sop->so_obj = XtCreateManagedWidget( b_sop->so_name, /* widget name */ xmToggleButtonWidgetClass, /* widget class */ sop->so_obj, /* parent widget */ NULL, 0); fix_names(QSP_ARG b_sop,sop); /* client data */ XtAddCallback(b_sop->so_obj, XmNvalueChangedCallback, chooser_func, NULL); XtManageChild(b_sop->so_obj); } pop_scrnobj_context(SINGLE_QSP_ARG); #endif /* HAVE_MOTIF */ SET_SOB_HEIGHT(sop, CHOOSER_HEIGHT + CHOOSER_ITEM_HEIGHT*n ); }