【发布时间】:2012-04-26 10:32:54
【问题描述】:
我正在制作这个链接(上面的代码),我需要当信息(国家)与以前的信息相同时,链接列表只更新计数并且信息不存储示例
如果有这个输入
mmm 1
mmm 2
mmm 3
输出需要为mmm3
我应该怎么做才能做到这一点
void insertitem(ListNode **startPtr,booking_type* bookings){
int ans=0;
ListNode *prevNode =NULL ,*curNode=*startPtr;
ListNode *newNode = (ListNode*)malloc(sizeof(ListNode));
strcpy(newNode->data, bookings->country); //newNode->data =bookings->country;
newNode->nextPtr = NULL;
newNode->count = 1;
while ((curNode!=NULL)&&(strcmp(curNode->data,bookings->country)<=0) ) // future : use strcmp
{
if(strcmp(curNode->data,bookings->country)==0){
newNode->count++;
}
prevNode=curNode;
curNode = prevNode->nextPtr;
}
if(prevNode == NULL)
*startPtr=newNode;
else
prevNode->nextPtr = newNode;
newNode->nextPtr = curNode;
}
【问题讨论】:
-
对不起,你得把你想要的解释清楚一点;这对我来说没有意义。
-
你得到的错误输出是什么?
-
换句话说,我需要当国家信息与链表中存储的前一个相同时,只更新计数。
-
如果输入是
aaa, bbb, aaa, ccc, ddd, ddd,那么输出应该是什么? -
aaa 2, bbb 1, ccc1, ddd2
标签: c list linked-list