コード例 #1
0
ファイル: list.c プロジェクト: PytLab/C-Primer-Plus
/*创建存放项目的节点并添加到列表尾部*/
bool AddItem(Item item, List * plist)
{
    Node * pnode;
    bool empty;        /*用于判断列表是否为空*/

    pnode = (Node *)malloc(sizeof(Node));
    if(pnode == NULL)  /*内存分配失败*/
        return false;  /*退出函数*/
    else
    {
        CopyToNode(item, pnode);
        pnode->next = NULL;
        empty = ListIsEmpty(plist);

        if(empty)
        {
            plist->head = pnode;
            plist->tail = pnode;
        }
        else
        {
            plist->tail->next = pnode;
            plist->tail = pnode;
        }
        plist->size++;  /*长度增长*/
        return true;
    }
}
コード例 #2
0
ファイル: list.c プロジェクト: ncepuwanghui/c
//创建存放项目的节点,并把它添加到由plist指向的列表尾部
bool AddItem(Item item, List * plist)
{
    Node * pnew;
    Node * scan = *plist;

    pnew = (Node *)malloc(sizeof(Node));
    if (pnew == NULL)
    {
        return false;
    }

    CopyToNode(item, pnew);
    pnew->next = NULL;
    if (scan == NULL)
    {
        *plist = pnew;
    }
    else
    {
        while (scan->next != NULL)
        {
            scan = scan->next;
        }
        scan->next = pnew;
    }

    return true;
}
コード例 #3
0
ファイル: list.c プロジェクト: Ricky-Hao/C-Primer-Plus-Demo
/*由plist指向的列表(较慢的实现方法)尾部*/
bool AddItem(Item item, List *plist)
{
	Node *pnew;
	Node *scan = *plist;

	pnew = (Node *)malloc(sizeof(Node));
	if (pnew == NULL)
		return false;		/*失败时退出*/

	CopyToNode(item, pnew);
	pnew->next = NULL;
	if (scan == NULL)			/*空列表,因此把pnew*/
		*plist = pnew;		/*放在列表头部*/
	else
	{
		while (scan->next != NULL)
			scan = scan -> next;	/*找到列表结尾*/
		scan->next = pnew;	/*把pnew添加到结尾处*/
	}
	return true;
}
コード例 #4
0
ファイル: queue2.c プロジェクト: Ricky-Hao/C-Primer-Plus-Demo
bool EnQueue(Item item, Queue *pq)
{
	Node *pnew;

	if (QueueIsFull(pq))
		return false;
	pnew = (Node *)malloc(sizeof(Node));
	if (pnew == NULL)
	{
		fprintf(stderr, "Unable to allocate memory!\n");
		exit(1);
	}
	CopyToNode(item, pnew);
	pnew->next = NULL;
	if (QueueIsEmpty(pq))
		pq->front = pnew;		//项目位于队列首端
	else
		pq->rear->next = pnew;
	pq->rear = pnew;
	pq->items++;
	return true;
}
コード例 #5
0
ファイル: list.c プロジェクト: celine80/sites
/* the list pointed to by plist (slow implementation)  */
bool AddItem(Item item, List * plist)
{
    Node * pnew;
    Node * scan = *plist;

    pnew = (Node *) malloc(sizeof(Node));
    if (pnew == NULL)
        return false;     /* quit function on failure  */

    CopyToNode(item, pnew);
    pnew->next = NULL;
    if (scan == NULL)          /* empty list, so place */
        *plist = pnew;         /* pnew at head of list */
    else
    {
        while (scan->next != NULL)
            scan = scan->next;  /* find end of list    */
        scan->next = pnew;      /* add pnew to end     */
    }
   
    return true;
}
コード例 #6
0
ファイル: 8list.c プロジェクト: 18616378431/myCode
BOOL EnQueue(Item item,Queue * pq)
{
	Qnode * pnew;
	
	if(QueueIsFull(pq))
		return FALSE;
	pnew = (Qnode *)malloc(sizeof(Qnode));
	if(pnew == NULL)
	{
		fprintf(stderr,"Unable allocate memory!\n");
		exit(1);
	}
	CopyToNode(item,pnew);
	pnew->next = NULL;
	if(QueueIsEmpty(pq))
		pq->head = pnew;
	else
		pq->end->next = pnew;
	pq->end = pnew;
	pq->items++;
	return TRUE;
}
コード例 #7
0
ファイル: list.c プロジェクト: fanghenshaometeor/cPrimerPlus
/* the end of the list plist points to 			*/
bool AddItem (Item item, List * plist)
{
	Node * pnew;
	Node * scan = * plist;

	pnew = (Node *) malloc (sizeof(Node));
	if (pnew == NULL)
		return false;				/* fail then quit function */
	
	CopyToNode(item, pnew);
	pnew->next = NULL;

	if (scan == NULL)				/* empty list, so put pnew */
		* plist = pnew;				/* to the head of the list */
	else
	{
		while(scan->next != NULL)
			scan = scan->next;		/* arrive at the end of the list */
		scan->next = pnew;			/* add pnew to the end of the list */
	}

	return true;
}
コード例 #8
0
ファイル: SinglyLinkedList.cpp プロジェクト: jnksu/CPP
/* 由plist 指向的列表(较慢的实现方法)尾部 */
bool AddItem(Item item, Head * plist)
{
	Node * pnew;
	Node * scan = *plist;

	pnew = (Node *)malloc(sizeof(Node));
	if (pnew == NULL)
		return false;		/* 失败时退出函数 */

	CopyToNode(item, pnew);
	pnew->next = NULL;

	if (scan == NULL){		/*  空列表,因此把pnew */
		*plist = pnew;
	}						/*  放在列表头部      */
	else{
		while (scan->next != NULL){
			scan = scan->next;
		}
		scan->next = pnew;
	}
	return true;
}
コード例 #9
0
bool Push(Item item,Stack * pstack){
	if(StackIsFull(pstack)){
		return false;
	}
	
	Node * pnew;
	pnew=(Node *)malloc(sizeof(Node));

	
	CopyToNode(item,pnew);
	pnew->next=NULL;
	
	if(pstack->end == NULL){
		pstack->head = pnew;
		pstack->end =  pnew;
	}
	else{
		pstack->end->next = pnew;
		pstack->end = pnew;
	}
	pstack->size++;
	return true;
}