Esempio n. 1
0
File: list.c Progetto: HAVRM/work
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;
}
Esempio n. 2
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;
	}
}
Esempio n. 3
0
File: p_sh.c Progetto: fervagar/frop
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;
  }
}
Esempio n. 4
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));
			}
		}
	}
}
Esempio n. 5
0
//------------------------------------------------------------------------------
// 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);
}
Esempio n. 6
0
File: list.c Progetto: HAVRM/work
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;
}
Esempio n. 7
0
File: bignum.c Progetto: HAVRM/work
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;
}
Esempio n. 8
0
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);
}
Esempio n. 9
0
File: list.c Progetto: HAVRM/work
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;
}
Esempio n. 10
0
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;
}
Esempio n. 11
0
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);
}
Esempio n. 12
0
//------------------------------------------------------------------------------
// 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;
}
Esempio n. 13
0
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);
}
Esempio n. 14
0
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);
}
Esempio n. 15
0
void add_to_panel(Panel_Obj *po, Screen_Obj *sop)	// for X11
{
	addHead(PO_CHILDREN(po),mk_node(sop));
	SET_SOB_PARENT(sop, po);
}
Esempio n. 16
0
File: motif.c Progetto: E-LLP/QuIP
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 */
}
Esempio n. 17
0
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();
}
Esempio n. 18
0
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);
}
Esempio n. 19
0
File: motif.c Progetto: E-LLP/QuIP
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 );
}