tenkobility 2017-11-27 02:36 采纳率: 0%
浏览 1121

数据结构双链表的插入和删除有问题了,求大佬看看

void insert(double price, int number,int time,char* name,int date,int id)
{
movRecord* node = record.next;
movRecord* p = record.next;

while (node != NULL)
{
        if (node->id > id)  break;
        else
        node = node->next;
}
movRecord* tmp = (movRecord *)malloc(sizeof(movRecord));
tmp->id = id;
tmp->date = date;
strcpy(tmp->name,name);
tmp->time = time;
tmp->number = number;
tmp->price = price;   
    if( id<10)
{

node->prior->next= tmp;
tmp->prior=node->prior;
tmp->next = node;
node->prior=tmp;
}
 else
{     
node->prior->next=tmp;
tmp->prior=node;
tmp->next=NULL;

}

while(p!=NULL)
{
    printf("电影编号:%3d\t放映日期:%10d\t电影名:%5s\t场次:%2d\t票数量:%4d\t票价:%5.2lf\t\n", 
    p->id, p->date,p->name,p->time,p->number,p->price);
    p=p->next;
}

}

void delete(int id)
{
movRecord* node = record.next;
movRecord* p=record.next;
while (node != NULL && node->id != id)
{
node = node->next;
}
if (node)
{
node->prior->next = node->next;
node->next->prior = node->prior;
free(node);
}

else
    printf("无法找到该文件\n");  

while(p!=NULL)
{
    printf("电影编号:%3d\t放映日期:%10d\t电影名:%5s\t场次:%2d\t票数量:%4d\t票价:%5.2lf\t\n",
     p->id, p->date,p->name,p->time,p->number,p->price);
    p=p->next;
}

}

  • 写回答

1条回答 默认 最新

  • 小明学编程 2018-01-08 12:05
    关注

    不知道你其他的代码是怎么样子的。头结点和尾节点,在插入和删除的时候,要特殊对待的。

    评论

报告相同问题?

悬赏问题

  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)