鱼C论坛

 找回密码
 立即注册
查看: 2521|回复: 11

[已解决]为什么delete函数删不了最后一个元素

[复制链接]
发表于 2018-4-2 21:52:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我的删除函数不能删除最后一个元素
那要怎么编写才可以??
# include <stdio.h>
# include <stdlib.h>

typedef struct Dulnode{
        int data;
        struct Dulnode *prior;
        struct Dulnode *next;
}Dulnode,*Dulinklist;

void initlist(Dulinklist *L) //初始化双向链表
{
        (*L)=(Dulinklist)malloc(sizeof(Dulnode));
        if(!(*L))
                printf("无法正常分配空间,对不起哦!\n");
        else
        {
                (*L)->prior=(*L)->next=NULL;
                printf("初始化成功!");
        }
}


void creatlist(Dulinklist *L) //创建双向链表
{
        int n,i;
        Dulinklist r,p;//指向尾节点
        r=*L;
        printf("请问您想输入几个元素:");
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
                p=(Dulinklist)malloc(sizeof(Dulnode));
                if(!p)
                        printf("无法正常分配空间,对不起哦~\n");
                else
                {
                        printf("请输入第%d个元素",i+1);
                        scanf("%d",&p->data);
                        p->next=r->next;
                        p->prior=r;
                        r->next=p;
                        r=p;
                }
        }
}

void showlist(Dulinklist *L) //输出双向链表
{

        Dulinklist p;
        p=(*L)->next;
        if((*L)->next==NULL)
                printf("双向链表中没有元素,不可以输出哦~\n");
        else if((*L)->next!=NULL)
        {        printf("该双向链表中的元素为:");
                while(p!=NULL)
                {
                        printf("%d ",p->data);
                        p=p->next;
                }
        }
        else
                printf("您的线性表不存在哦,不可以显示元素呢~");
        printf("\n");
}

int lengthlist(Dulinklist L) //求表长
{
        Dulinklist p;
        int length=0;
        p=L->next;
        while(p!=NULL)
        {
                length++;
                p=p->next;
        }
        printf("您的表长为%d\n",length);
        return length;
}

void isemptylist(Dulinklist *L) //判断该双向链表是否为空
{
        if((*L)->next==NULL)
                printf("您的链表为空。\n");
        else
                printf("您的链表不为空\n");
}


void destroylist(Dulinklist *L)//销毁链表
{
        Dulinklist p,q;
        p=*L;
        while(p)
        {
                q=p->next;
                free(p);
                p=q;
        }
        printf("已经销毁线性表了哦~\n");
}

void clearlist(Dulinklist *L) //清空线性表
{
        Dulinklist p,q;
        p=(*L)->next;
        while(p!=NULL)
        {
                q=p->next;
                free(p);
                p=q;
        }
        (*L)->next=NULL;
        printf("已经清空双向链表了哦~\n");
}

void getelem(Dulinklist *L) //根据查询位置给出元素内容
{
        int i,j,e;
        Dulinklist p;
        printf("请问您想要查询哪一个位置的元素内容:");
        scanf("%d",&i);
        p=(*L)->next;
        j=0;
        while(p)
        {
                ++j;
                if(i==j)
                {
                        e=p->data;
                        printf("您查询的位置的元素内容为:%d\n",e);
                        break;
                }
                p=p->next;
        }
        if(i!=j||!p)
                printf("您的输入位置有误,无法查询。\n");
}

void locateelem(Dulinklist *L) //根据元素内容查询元素位置
{
        int e,j=0;
        Dulinklist p;
        p=(*L)->next;
        printf("请输入您想要查询的元素内容:");
        scanf("%d",&e);
        while(p)
        {
                j++;
                if(e==p->data)
                {
                        printf("您所要查询的元素内容位于%d号!\n",j);
                        break;
                }
                p=p->next;
        }
        if(!p)
                printf("无法查询到元素位置。\n");
}

void insertlist(Dulinklist *L) //在指定元素位置前插入某元素
{
        int i,e,j=0;
        Dulinklist p,s;
        p=(*L);
        printf("请问您想要在哪一号元素前插入什么内容:");
        scanf("%d,%d",&i,&e);
        while(p&&j<i-1)
        {
                p=p->next;       
                ++j;               
        }
        if(!p||j>i-1)
                printf("插入位置有误。\n");
        else
        {
                s=(Dulinklist)malloc(sizeof(Dulnode));
                if(!s)
                        printf("分配空间失败,无法进行插入~\n");
                else
                {
                        s->data=e;
                        s->prior=p;
                        s->next=p->next;
                        p->next->prior=s;
                        p->next=s;
                }
        }
}


void deletelist(Dulinklist *L)//删除某指定元素并用返回其值
{
        int i,j,e;
        Dulinklist p,q;
        p=(*L);
        j=0;
        printf("请问您想删除哪一号的元素内容:");
        scanf("%d",&i);
        while(p->next&&j<i-1)
        {       
                p=p->next;
                ++j;
        }
        if(!(p->next)||j>i-1)
                printf("删除位置有误。\n");
        else
        {
                q=p->next;
                e=q->data;
                p->next=q->next;
                q->next->prior=p;
                free(q);

        }

}


int main()
{
        Dulinklist L;
        initlist(&L);
        creatlist(&L);
        showlist(&L);
        isemptylist(&L);
        //clearlist(&L);
        //isemptylist(&L);
        //destroylist(&L);
        //showlist(&L);
        //getelem(&L);
        //locateelem(&L);
        lengthlist(L);
        insertlist(&L);
        showlist(&L);
        deletelist(&L);
        showlist(&L);
        lengthlist(L);
        return 0;
}@人造人
最佳答案
2018-4-3 09:02:01
  1. 初始化成功!请问您想输入几个元素:4
  2. 请输入第1个元素0
  3. 请输入第2个元素1
  4. 请输入第3个元素2
  5. 请输入第4个元素3
  6. 该双向链表中的元素为:0 1 2 3
  7. 您的链表不为空
  8. 您的表长为4
  9. 请问您想要在哪一号元素前插入什么内容:1
  10. 该双向链表中的元素为:-858993460 0 1 2 3
  11. 请问您想删除哪一号的元素内容:3
  12. 该双向链表中的元素为:-858993460 0 2 3
  13. 您的表长为4
  14. 请按任意键继续. . .
复制代码


你的问题是???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-3 09:02:01 | 显示全部楼层    本楼为最佳答案   
  1. 初始化成功!请问您想输入几个元素:4
  2. 请输入第1个元素0
  3. 请输入第2个元素1
  4. 请输入第3个元素2
  5. 请输入第4个元素3
  6. 该双向链表中的元素为:0 1 2 3
  7. 您的链表不为空
  8. 您的表长为4
  9. 请问您想要在哪一号元素前插入什么内容:1
  10. 该双向链表中的元素为:-858993460 0 1 2 3
  11. 请问您想删除哪一号的元素内容:3
  12. 该双向链表中的元素为:-858993460 0 2 3
  13. 您的表长为4
  14. 请按任意键继续. . .
复制代码


你的问题是???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-3 20:14:14 | 显示全部楼层
人造人 发表于 2018-4-3 09:02
你的问题是???

我现在没问题了这个删除函数。
我现在就还是搞不懂销毁的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-3 21:12:41 | 显示全部楼层
人造人 发表于 2018-4-3 09:02
你的问题是???

我之前用单链表可以删除 现在我用双向链表又不可以删除了...
而且我只有最后一个元素不能删除,其他都可以正常删除

这是为什么???  是因为是双向链表吗?所以最后一个元素当执行q->next->prior=p语句会出问题吗?

我执行的结果是这样的:见图
  1. # include <stdio.h>
  2. # include <stdlib.h>

  3. typedef struct Dulnode{
  4.         int data;
  5.         struct Dulnode *prior;
  6.         struct Dulnode *next;
  7. }Dulnode,*Dulinklist;

  8. void initlist(Dulinklist *L) //初始化双向链表
  9. {
  10.         (*L)=(Dulinklist)malloc(sizeof(Dulnode));
  11.         if(!(*L))
  12.                 printf("无法正常分配空间,对不起哦!\n");
  13.         else
  14.         {
  15.                 (*L)->prior=(*L)->next=NULL;
  16.                 printf("初始化成功!");
  17.         }
  18. }


  19. void creatlist(Dulinklist *L) //创建双向链表
  20. {
  21.         int n,i;
  22.         Dulinklist r,p;//指向尾节点
  23.         r=*L;
  24.         printf("请问您想输入几个元素:");
  25.         scanf("%d",&n);
  26.         for(i=0;i<n;i++)
  27.         {
  28.                 p=(Dulinklist)malloc(sizeof(Dulnode));
  29.                 if(!p)
  30.                         printf("无法正常分配空间,对不起哦~\n");
  31.                 else
  32.                 {
  33.                         printf("请输入第%d个元素",i+1);
  34.                         scanf("%d",&p->data);
  35.                         p->next=NULL;
  36.                         p->prior=r;
  37.                         r->next=p;
  38.                         r=p;
  39.                 }
  40.         }
  41. }

  42. void showlist(Dulinklist *L) //输出双向链表
  43. {

  44.         Dulinklist p;
  45.         p=(*L)->next;
  46.         if((*L)->next==NULL)
  47.                 printf("双向链表中没有元素,不可以输出哦~\n");
  48.         else if((*L)->next!=NULL)
  49.         {        printf("该双向链表中的元素为:");
  50.                 while(p!=NULL)
  51.                 {
  52.                         printf("%d ",p->data);
  53.                         p=p->next;
  54.                 }
  55.         }
  56.         else
  57.                 printf("您的线性表不存在哦,不可以显示元素呢~");
  58.         printf("\n");
  59. }

  60. int lengthlist(Dulinklist *L) //求表长
  61. {
  62.         Dulinklist p;
  63.         int length=0;
  64.         p=(*L)->next;
  65.         while(p!=NULL)
  66.         {
  67.                 length++;
  68.                 p=p->next;
  69.         }
  70.         printf("您的表长为%d\n",length);
  71.         return length;
  72. }

  73. void isemptylist(Dulinklist *L) //判断该双向链表是否为空
  74. {
  75.         if((*L)->next==NULL)
  76.                 printf("您的链表为空。\n");
  77.         else
  78.                 printf("您的链表不为空\n");
  79. }


  80. void destroylist(Dulinklist *L)//销毁链表
  81. {
  82.         Dulinklist p,q;
  83.         p=*L;
  84.         while(p)
  85.         {
  86.                 q=p->next;
  87.                 free(p);
  88.                 p=q;
  89.         }
  90.         printf("已经销毁线性表了哦~\n");
  91. }

  92. void clearlist(Dulinklist *L) //清空线性表
  93. {
  94.         Dulinklist p,q;
  95.         p=(*L)->next;
  96.         while(p!=NULL)
  97.         {
  98.                 q=p->next;
  99.                 free(p);
  100.                 p=q;
  101.         }
  102.         (*L)->next=NULL;
  103.         printf("已经清空双向链表了哦~\n");
  104. }

  105. /*void getelem(Dulinklist *L) //根据查询位置给出元素内容
  106. {
  107.         int i,j,e;
  108.         Dulinklist p;
  109.         printf("请问您想要查询哪一个位置的元素内容:");
  110.         scanf("%d",&i);
  111.         p=(*L)->next;
  112.         j=0;
  113.         while(p)
  114.         {
  115.                 ++j;
  116.                 if(i==j)
  117.                 {
  118.                         e=p->data;
  119.                         printf("您查询的位置的元素内容为:%d\n",e);
  120.                         break;
  121.                 }
  122.                 p=p->next;
  123.         }
  124.         if(i!=j||!p)
  125.                 printf("您的输入位置有误,无法查询。\n");
  126. }*/

  127. void getelem(Dulinklist *L)
  128. {
  129.         int i,j,e;
  130.         Dulinklist p;
  131.         printf("请问您想要查询哪一个位置的元素内容:");
  132.         scanf("%d",&i);
  133.         p=(*L),j=0;
  134.         while(p&&j<i)
  135.         {
  136.                 p=p->next;
  137.                 j++;
  138.         }
  139.         if(!p||j>i)
  140.                 printf("查询位置有误,无法查询\n");
  141.         else
  142.         {
  143.                 e=p->data;
  144.                 printf("您查询的位置的元素是:%d\n",e);
  145.         }
  146. }



  147. void locateelem(Dulinklist *L) //根据元素内容查询元素位置
  148. {
  149.         int e,j=0;
  150.         Dulinklist p;
  151.         p=(*L)->next;
  152.         printf("请输入您想要查询的元素内容:");
  153.         scanf("%d",&e);
  154.         while(p)
  155.         {
  156.                 j++;
  157.                 if(e==p->data)
  158.                 {
  159.                         printf("您所要查询的元素内容位于%d号!\n",j);
  160.                         break;
  161.                 }
  162.                 p=p->next;
  163.         }
  164.         if(!p)
  165.                 printf("无法查询到元素位置。\n");
  166. }

  167. void insertlist(Dulinklist *L) //在指定元素位置前插入某元素
  168. {
  169.         int i,e,j=0;
  170.         Dulinklist p,s;
  171.         p=(*L);
  172.         printf("请问您想要在哪一号元素前插入什么内容:");
  173.         scanf("%d,%d",&i,&e);
  174.         while(p&&j<i-1)
  175.         {
  176.                 p=p->next;       
  177.                 ++j;               
  178.         }
  179.         if(!p||j>i-1)
  180.                 printf("插入位置有误。\n");
  181.         else
  182.         {
  183.                 s=(Dulinklist)malloc(sizeof(Dulnode));
  184.                 if(!s)
  185.                         printf("分配空间失败,无法进行插入~\n");
  186.                 else
  187.                 {
  188.                         s->data=e;
  189.                         s->prior=p;
  190.                         s->next=p->next;
  191.                         p->next->prior=s;
  192.                         p->next=s;
  193.                 }
  194.         }
  195. }


  196. void deletelist(Dulinklist *L)//删除某指定元素并用返回其值
  197. {
  198.         int i,j,e,len;
  199.         Dulinklist p,q;
  200.         p=(*L);
  201.         j=0;
  202.         printf("请问您想删除哪一号的元素内容:");
  203.         scanf("%d",&i);
  204.         while(p&&j<i-1)
  205.         {       
  206.                 p=p->next;
  207.                 ++j;
  208.         }
  209.         if(!p||j>i-1)
  210.                 printf("删除位置有误。\n");

  211.         else
  212.         {
  213.                 q=p->next;
  214.                 e=q->data;
  215.                
  216.                 p->next=q->next;
  217.                 q->next->prior=p;
  218.                 free(q);
  219.         }


  220. }


  221. int main()
  222. {
  223.         Dulinklist L;
  224.         initlist(&L);
  225.         creatlist(&L);
  226.         showlist(&L);
  227.         //isemptylist(&L);
  228.         //clearlist(&L);
  229.         //isemptylist(&L);
  230.         //destroylist(&L);
  231.         //showlist(&L);
  232.         //getelem(&L);
  233.         //locateelem(&L);
  234.         lengthlist(&L);
  235.         //insertlist(&L);
  236.         //showlist(&L);
  237.         deletelist(&L);
  238.         showlist(&L);
  239.         lengthlist(&L);
  240.         return 0;
  241. }
复制代码
QQ图片20180403211214.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-3 21:56:51 | 显示全部楼层
愿你 发表于 2018-4-3 21:12
我之前用单链表可以删除 现在我用双向链表又不可以删除了...
而且我只有最后一个元素不能删除,其他都可 ...
  1. # include <stdio.h>
  2. # include <stdlib.h>

  3. typedef struct Dulnode {
  4.         int data;
  5.         struct Dulnode *prior;
  6.         struct Dulnode *next;
  7. }Dulnode, *Dulinklist;

  8. void initlist(Dulinklist *L) //初始化双向链表
  9. {
  10.         (*L) = (Dulinklist)malloc(sizeof(Dulnode));
  11.         if(!(*L))
  12.                 printf("无法正常分配空间,对不起哦!\n");
  13.         else
  14.         {
  15.                 (*L)->prior = (*L)->next = NULL;
  16.                 printf("初始化成功!");


  17.                 (*L)->data = 1234;        // debug
  18.         }
  19. }


  20. void creatlist(Dulinklist *L) //创建双向链表
  21. {
  22.         int n, i;
  23.         Dulinklist r, p;//指向尾节点
  24.         r = *L;
  25.         printf("请问您想输入几个元素:");
  26.         scanf("%d", &n);
  27.         for(i = 0; i<n; i++)
  28.         {
  29.                 p = (Dulinklist)malloc(sizeof(Dulnode));
  30.                 if(!p)
  31.                         printf("无法正常分配空间,对不起哦~\n");
  32.                 else
  33.                 {
  34.                         printf("请输入第%d个元素", i + 1);
  35.                         scanf("%d", &p->data);
  36.                         p->next = NULL;
  37.                         p->prior = r;
  38.                         r->next = p;
  39.                         r = p;
  40.                 }
  41.         }
  42. }

  43. void showlist(Dulinklist *L) //输出双向链表
  44. {

  45.         Dulinklist p;
  46.         p = (*L)->next;
  47.         if((*L)->next == NULL)
  48.                 printf("双向链表中没有元素,不可以输出哦~\n");
  49.         else if((*L)->next != NULL)
  50.         {
  51.                 printf("该双向链表中的元素为:");
  52.                 while(p != NULL)
  53.                 {
  54.                         printf("%d ", p->data);
  55.                         p = p->next;
  56.                 }
  57.         }
  58.         else
  59.                 printf("您的线性表不存在哦,不可以显示元素呢~");
  60.         printf("\n");
  61. }

  62. int lengthlist(Dulinklist *L) //求表长
  63. {
  64.         Dulinklist p;
  65.         int length = 0;
  66.         p = (*L)->next;
  67.         while(p != NULL)
  68.         {
  69.                 length++;
  70.                 p = p->next;
  71.         }
  72.         printf("您的表长为%d\n", length);
  73.         return length;
  74. }

  75. void isemptylist(Dulinklist *L) //判断该双向链表是否为空
  76. {
  77.         if((*L)->next == NULL)
  78.                 printf("您的链表为空。\n");
  79.         else
  80.                 printf("您的链表不为空\n");
  81. }


  82. void destroylist(Dulinklist *L)//销毁链表
  83. {
  84.         Dulinklist p, q;
  85.         p = *L;
  86.         while(p)
  87.         {
  88.                 q = p->next;
  89.                 free(p);
  90.                 p = q;
  91.         }
  92.         printf("已经销毁线性表了哦~\n");
  93. }

  94. void clearlist(Dulinklist *L) //清空线性表
  95. {
  96.         Dulinklist p, q;
  97.         p = (*L)->next;
  98.         while(p != NULL)
  99.         {
  100.                 q = p->next;
  101.                 free(p);
  102.                 p = q;
  103.         }
  104.         (*L)->next = NULL;
  105.         printf("已经清空双向链表了哦~\n");
  106. }

  107. /*void getelem(Dulinklist *L) //根据查询位置给出元素内容
  108. {
  109. int i,j,e;
  110. Dulinklist p;
  111. printf("请问您想要查询哪一个位置的元素内容:");
  112. scanf("%d",&i);
  113. p=(*L)->next;
  114. j=0;
  115. while(p)
  116. {
  117. ++j;
  118. if(i==j)
  119. {
  120. e=p->data;
  121. printf("您查询的位置的元素内容为:%d\n",e);
  122. break;
  123. }
  124. p=p->next;
  125. }
  126. if(i!=j||!p)
  127. printf("您的输入位置有误,无法查询。\n");
  128. }*/

  129. void getelem(Dulinklist *L)
  130. {
  131.         int i, j, e;
  132.         Dulinklist p;
  133.         printf("请问您想要查询哪一个位置的元素内容:");
  134.         scanf("%d", &i);
  135.         p = (*L), j = 0;
  136.         while(p&&j<i)
  137.         {
  138.                 p = p->next;
  139.                 j++;
  140.         }
  141.         if(!p || j>i)
  142.                 printf("查询位置有误,无法查询\n");
  143.         else
  144.         {
  145.                 e = p->data;
  146.                 printf("您查询的位置的元素是:%d\n", e);
  147.         }
  148. }



  149. void locateelem(Dulinklist *L) //根据元素内容查询元素位置
  150. {
  151.         int e, j = 0;
  152.         Dulinklist p;
  153.         p = (*L)->next;
  154.         printf("请输入您想要查询的元素内容:");
  155.         scanf("%d", &e);
  156.         while(p)
  157.         {
  158.                 j++;
  159.                 if(e == p->data)
  160.                 {
  161.                         printf("您所要查询的元素内容位于%d号!\n", j);
  162.                         break;
  163.                 }
  164.                 p = p->next;
  165.         }
  166.         if(!p)
  167.                 printf("无法查询到元素位置。\n");
  168. }

  169. void insertlist(Dulinklist *L) //在指定元素位置前插入某元素
  170. {
  171.         int i, e, j = 0;
  172.         Dulinklist p, s;
  173.         p = (*L);
  174.         printf("请问您想要在哪一号元素前插入什么内容:");
  175.         scanf("%d,%d", &i, &e);
  176.         while(p&&j<i - 1)
  177.         {
  178.                 p = p->next;
  179.                 ++j;
  180.         }
  181.         if(!p || j>i - 1)
  182.                 printf("插入位置有误。\n");
  183.         else
  184.         {
  185.                 s = (Dulinklist)malloc(sizeof(Dulnode));
  186.                 if(!s)
  187.                         printf("分配空间失败,无法进行插入~\n");
  188.                 else
  189.                 {
  190.                         s->data = e;
  191.                         s->prior = p;
  192.                         s->next = p->next;
  193.                         p->next->prior = s;
  194.                         p->next = s;
  195.                 }
  196.         }
  197. }


  198. void deletelist(Dulinklist *L)//删除某指定元素并用返回其值
  199. {
  200.         int i, j, e;
  201.         Dulinklist p, q;
  202.         p = (*L);
  203.         j = 0;
  204.         printf("请问您想删除哪一号的元素内容:");
  205.         scanf("%d", &i);
  206.         while(p&&j<i - 1)
  207.         {
  208.                 p = p->next;
  209.                 ++j;
  210.         }
  211.         if(!p || j>i - 1)
  212.                 printf("删除位置有误。\n");

  213.         else
  214.         {
  215.                 q = p->next;
  216.                 e = q->data;

  217.                 p->next = q->next;
  218.                 if(q->next != NULL)
  219.                         q->next->prior = p;
  220.                 free(q);
  221.         }


  222. }


  223. int main()
  224. {
  225.         Dulinklist L;
  226.         initlist(&L);
  227.         creatlist(&L);
  228.         showlist(&L);
  229.         //isemptylist(&L);
  230.         //clearlist(&L);
  231.         //isemptylist(&L);
  232.         //destroylist(&L);
  233.         //showlist(&L);
  234.         //getelem(&L);
  235.         //locateelem(&L);
  236.         lengthlist(&L);
  237.         //insertlist(&L);
  238.         //showlist(&L);
  239.         deletelist(&L);
  240.         showlist(&L);
  241.         lengthlist(&L);
  242.         return 0;
  243. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-3 22:02:38 | 显示全部楼层

我之前用的是这种,但是没出来
不过你就添加了一句!!!太棒了吧也!!!!


  1. void deletelist(Dulinklist *L)//删除某指定元素并用返回其值
  2. {
  3.         int i,j,e,len;
  4.         Dulinklist p,q;
  5.         p=(*L);
  6.         j=0;
  7.         len=lengthlist(&L);
  8.         printf("请问您想删除哪一号的元素内容:");
  9.         scanf("%d",&i);
  10.         while(p&&j<i-1)
  11.         {       
  12.                 p=p->next;
  13.                 ++j;
  14.         }
  15.         if(!p||j>i-1)
  16.                 printf("删除位置有误。\n");
  17.         else if(i==len)
  18.         {
  19.                 q=p->next;
  20.                 e=q->data;
  21.                
  22.                 p->next=q->next;
  23.                 free(q);

  24.         }
  25.         else
  26.         {
  27.                 q=p->next;
  28.                 e=q->data;
  29.                
  30.                 p->next=q->next;
  31.                 q->next->prior=p;
  32.                 free(q);
  33.         }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-3 22:05:03 | 显示全部楼层
愿你 发表于 2018-4-3 22:02
我之前用的是这种,但是没出来
不过你就添加了一句!!!太棒了吧也!!!!

意思是问题解决了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-3 22:05:35 | 显示全部楼层
愿你 发表于 2018-4-3 22:02
我之前用的是这种,但是没出来
不过你就添加了一句!!!太棒了吧也!!!!

这个结果是调试出来的,要学会调试
^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-16 09:37:28 | 显示全部楼层
人造人 发表于 2018-4-3 22:05
意思是问题解决了?

对呀你解决了我的问题~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-16 09:38:07 | 显示全部楼层
人造人 发表于 2018-4-3 22:05
这个结果是调试出来的,要学会调试
^_^

我还是没学会调试
我中午找找资源
我之前找过了 都没看到合适的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-16 09:41:28 | 显示全部楼层
whx2008 发表于 2018-4-4 23:32
太难啊了!想不到啊!!!

加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-16 12:32:37 | 显示全部楼层
愿你 发表于 2018-4-16 09:38
我还是没学会调试
我中午找找资源
我之前找过了 都没看到合适的

^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 19:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表