愿你 发表于 2018-3-22 21:25:04

为什么我的插入和删除的输出不正确呢 求帮助啊~

# define INCREMENT 5
# define ERROR -1
# define LISTSIZE 10
# include<stdio.h>
# include<stdlib.h>
typedef struct{
        int *data;
        int length;
        int listsize;
}Seqlist;

int Initial(Seqlist *L)
{
        L->data=(int*)malloc(LISTSIZE*sizeof(int));
        if(!(L->data))
                return ERROR;
        L->length=0;
        L->listsize=LISTSIZE;
}

void creat(Seqlist *L)
{
        int a,i;
        printf("请输入要创建的元素个数: ");
        scanf("%d",&a);
        for(i=0;i<a;i++)
        {
                printf("第%d个元素为:",i+1);
                scanf("%d",&L->data);
                L->length++;
        }
}

void show(Seqlist *L)
{
        int i;
        printf("线性表中的元素为:");
        for(i=0;i<L->length;i++)
                printf("%d ",L->data);
        printf("\n");
}

int getelem(Seqlist *L)
        {
        int i;
        printf("请输入你需要查找第几号元素:");
        scanf("%d",&i);
        printf("您查询的结果是:%d\n",L->data);
        }

int listinsert(Seqlist *L,int i,int e)
{
        int j;
        if(i<1||i>L->length+1)
                return ERROR;
        else if(L->length=LISTSIZE)
                return ERROR;
        else
        {
                for(j=L->length-1;j>=i-1;j--)
                        L->data=L->data;
                L->data=e;
                L->length++;
                return 0;
        }
}


int listdelete(Seqlist *L,int i,int e)
{
        int j;
        e=L->data;
        if(i<1||i>L->length)
                return ERROR;
        else
        {
                for(j=i;j<=L->length-1;j++)
                        L->data=L->data;
                L->length--;
        }

                return 0;
}




int main()
{
        Seqlist L;
        int a;
        Initial(&L);
        creat(&L);
        show(&L);
        getelem(&L);
        listinsert(&L,2,a);
        show(&L);
        listdelete(&L,2,a);
        show(&L);
        putchar('\n');
        return 0;
}

ba21 发表于 2018-3-22 23:12:52

看了你的代码真会把人搞晕。我只能说是神一样的代码。。。
简单说下
L->data=(int*)malloc(LISTSIZE*sizeof(int)); // 分配了10个int大小的空间
// 下面确可以无限输入
void creat(Seqlist *L)
{
      int a,i;
      printf("请输入要创建的元素个数: ");
      scanf("%d",&a);
      for(i=0;i<a;i++)
      {
                printf("第%d个元素为:",i+1);
                scanf("%d",&L->data);
                L->length++;
      }
}

建议:::你线性不是线性表(顺序表),搞不懂是什么玩意,看的人越看越蒙。你再仔细看看教程加深巩固基础

愿你 发表于 2018-3-23 08:35:48

我的怎么就不是顺序表了...

愿你 发表于 2018-3-23 09:01:49

ba21 发表于 2018-3-22 23:12
看了你的代码真会把人搞晕。我只能说是神一样的代码。。。
简单说下
L->data=(int*)malloc(LISTSIZE*siz ...

而且我输入顺序表的是输出它的表长啊...为什么会错...

ba21 发表于 2018-3-23 12:31:40

愿你 发表于 2018-3-23 08:35
我的怎么就不是顺序表了...

你怎么就是顺序表了。你自定义的自认为是,那我也无话可说。喊你再仔细看看教程;对我可没有好处。

songqiang 发表于 2018-3-23 17:14:57

int listinsert(Seqlist *L,int i,int e)
{
      int j;
      if(i<1||i>L->length+1)
                return ERROR;
      else if(L->length=LISTSIZE)   //这行写错了吧。应该是==
                return ERROR;
      else
      {
                for(j=L->length-1;j>=i-1;j--)         //L->length就行
                        L->data=L->data;
                L->data=e;                           //这个是 i 吧
                L->length++;
                return 0;
      }
}

愿你 发表于 2018-3-23 22:16:56

ba21 发表于 2018-3-23 12:31
你怎么就是顺序表了。你自定义的自认为是,那我也无话可说。喊你再仔细看看教程;对我可没有好处。

你说话语气也用不着这么冲啊 不懂才问的好吧

愿你 发表于 2018-3-26 16:01:16

songqiang 发表于 2018-3-23 17:14
int listinsert(Seqlist *L,int i,int e)
{
      int j;


数组下标不是要减1吗 所以我就都减了

愿你 发表于 2018-3-26 17:43:52

ba21 发表于 2018-3-23 12:31
你怎么就是顺序表了。你自定义的自认为是,那我也无话可说。喊你再仔细看看教程;对我可没有好处。

我依旧觉得我这个帖子的线性表没有太大问题啊。
我今天又编写了一遍 结果都出来了,但我今天只是在这个基础上进行修改而已。
所以 还请你告诉我 我哪里需要改进{:10_297:}

# define ERROR -1
# define LISTSIZE 5
# include<stdio.h>
# include<stdlib.h>
typedef struct{
        int *elem;
        int length;
        int listsize;
}Sqlist;

int initlist(Sqlist *L) //初始化顺序表
{
        L->elem=(int*)malloc(LISTSIZE*sizeof(int));
        if(!(L->elem))
                return ERROR;
        L->length=0;
        L->listsize=LISTSIZE;
        return 1;
}

int creatlist(Sqlist *L)//创建顺序表
{
        int i;
        printf("请输入你要创建的顺序表元素个数:\n");
        scanf("%d",&L->length);
        if(L->length>=L->listsize)
                return ERROR;
        printf("请输入你要创建的顺序表:\n");
        for(i=0;i<L->length;i++)
        {
                printf("第%d个元素是:",i+1);
                scanf("%d",&L->elem);
        }
        return 1;
}



void showlist(Sqlist *L) //遍历顺序表
{
        int i;
        printf("您的顺序表为:");
        for(i=0;i<L->length;i++)
                printf("%d ",L->elem);
        printf("\n");
}




int searchlist(Sqlist *L) //根据元素值查找元素的位置
{
        int e;
        int i;
        printf("请输入你想要查询的元素:");
        scanf("%d",&e);
        for(i=0;i<L->length;i++)
        {
                if(e==L->elem)
                {
                        printf("该元素位置为%d\n",i+1);
                        break;
                }
        }
        if(i>L->length)
                printf("尚未找到您想要的值。\n");
        return 1;
}

intgetelem(Sqlist L)//根据位置查找元素值
{
        int i;
        printf("请输入您想要查询的位置:");
        scanf("%d",&i);
        if(i<1||i>L.length)
                return ERROR;
        else
                printf("您所查询的位置的值为:%d\n",L.elem);
}



void isempty(Sqlist L)//判断表示法为空
{
        if(L.length==0)
                printf("该表为空\n");
        else
                printf("该表不为空\n");
}


void listlength(Sqlist L)//求表长
{
        printf("该表长为:%d\n",L.length);
}


void clearlist(Sqlist *L)   //清空线性表
{
        L->length=0;
        printf("该表已被清空哦~\n");
}

voiddestroylist(Sqlist *L)//销毁线性表
{
        if(L->elem)
                free (L);
        printf("该表已被销毁哦~\n");
}

void insertlist(Sqlist *L)//在第i个元素之前插入某元素
{
        int i,e,j;
        printf("请输入插入的元素位置i和元素内容e:");
        scanf("%d,%d",&i,&e);
        if(i<1||i>L->length)
                printf("插入位置不合法。");
        else if(L->length==LISTSIZE)
                printf("该表已满 无法插入");
        else
        {
                for(j=L->length;j>=i-1;j--)
                        L->elem=L->elem;
                L->elem=e;
                ++L->length;
        }

}

void deletelist(Sqlist *L)//删除第i个元素
{
        int i,j;
        printf("请输入您要删除的元素位置i:");
        scanf("%d",&i);
        if(i<1||i>L->length)
                printf("删除位置不合法");
        else
        {
                for(j=i;j<=L->length-1;j++)
                {
                        L->elem=L->elem;
                }
                --L->length;
        }
}




int main()
{
        Sqlist L;
        initlist(&L);
        creatlist(&L);
        showlist(&L);
        /*searchlist(&L);
        showlist(&L);
        getelem(L);
        showlist(&L);
        //clearlist(&L);
        //destroylist(&L);
        isempty(L);
        listlength(L);
        showlist(&L);*/
        insertlist(&L);
        showlist(&L);
        deletelist(&L);
        showlist(&L);
        return 0;
}

ba21 发表于 2018-3-26 19:38:11

本帖最后由 ba21 于 2018-3-26 20:55 编辑

愿你 发表于 2018-3-26 17:43
我依旧觉得我这个帖子的线性表没有太大问题啊。
我今天又编写了一遍 结果都出来了,但我今天只是在这个 ...

#include<stdio.h>
#include<stdlib.h>


#define INCREMENT 5
#define OK 1
#define ERROR -1
#define LISTSIZE 10


typedef struct{
      int *data;
      int length;
      int listsize;
}Seqlist;

int Initial(Seqlist *L)
{
      L->data=(int*)malloc(LISTSIZE*sizeof(int));
      if(!(L->data))
                return ERROR;
      L->length=0;
      L->listsize=LISTSIZE;

                return OK;
}

int creat(Seqlist *L)
{
      int a,i;
      printf("请输入要创建的元素个数: ");
      scanf("%d",&a);
               
                if(a>LISTSIZE)
                {
                        printf("元素个数不能超过 %d 个。\n", LISTSIZE);
                        return ERROR;
                }

      for(i=0;i<a;i++)
      {
                printf("第%d个元素为:",i+1);
                scanf("%d",&L->data);
                L->length++;
      }

                return OK;
}

void show(Seqlist *L)
{
      int i;
      printf("线性表中的元素为:");
      for(i=0;i<L->length;i++)
                printf("%d ",L->data);
      printf("\n");
}

int getelem(Seqlist *L)
{
      int i;

      printf("请输入你需要查找第几号元素:");
      scanf("%d",&i);
                if(i<1 || i>L->length) // 当i不在范围内时
                {
                       printf("%d 号元素不存在!\n", i);
                       return ERROR;
                }

      printf("您查询的结果是:%d\n",L->data);

                return OK;
}

int listinsert(Seqlist *L,int i,int e)
{
                int k;

                if(L->length == LISTSIZE) // 顺序线性表已经满了
                {
                        return ERROR;
                }
                if(i<1 || i>L->length) // 当i不在范围内时
                {
                        return ERROR;
                }
                if(i <= L->length) // 若插入数据位置不在表尾
                {
                        /* 将要插入位置后数据元素向后移动一位 */
                        for(k=L->length-1; k>=i-1; k--)
                        {
                                L->data = L->data;
                        }
                }

                L->data = e;
                L->length++;

                return OK;
}


int listdelete(Seqlist *L,int i,int *e)
{
        int k;

        if(L->length == 0) // 空表
        {
                return ERROR;
        }
        if(i<1 || i>L->length) // 删除的位置不正确
        {
                return ERROR;
        }

        *e = L->data;

        printf("%d, %d\n", L->length, i);
        if(i<=L->length)
        {
                for(k=i; k<=L->length; k++)
                {
                        L->data = L->data;
                }
        }

        L->length--;

        return OK;
}




int main()
{
      Seqlist L;
      int a, b;

                // 初始化
      Initial(&L);
      if(creat(&L)==OK)
                {
                        // 显示
                        show(&L);

                        // 获取元素
                        getelem(&L);

                        // 插入元素
                        printf("请输入要插入的元素:");
                        scanf("%d", &a);
                        listinsert(&L,2,a);
                        show(&L);

                        // 删除元素
                        printf("执行删除操作:\n");
                        listdelete(&L,2,&b);
                        printf("删除的元素是: %d\n", b);
                        show(&L);

                        putchar('\n');
                }

      return 0;
}

愿你 发表于 2018-3-26 19:51:35

ba21 发表于 2018-3-26 19:38


{:10_264:}{:10_264:}{:10_264:}甘拜下风!!!!!!

愿你 发表于 2018-3-26 19:59:40

你可以在帮我看看我现在的代码吗 还是和昨天的一样的题目合并 但是这次用顺序表完成
{:10_254:}{:10_254:}{:10_254:}

我还是打印出来的是第一个表{:10_266:}{:10_266:}
# include<stdio.h>
# include<stdlib.h>
# define ERROR -1
# define LISTSIZE 5
typedef struct{
        int *elem;
        int length;
        int listsize;
}Sqlist;

int initlist(Sqlist *L) //初始化顺序表
{
        L->elem=(int*)malloc(LISTSIZE*sizeof(int));
        if(!(L->elem))
                return ERROR;
        L->length=0;
        L->listsize=LISTSIZE;
        return 1;
}

int creatlist(Sqlist *L)//创建顺序表
{
        int i;
        printf("请输入你要创建的顺序表元素个数:\n");
        scanf("%d",&L->length);
        if(L->length>=L->listsize)
                return ERROR;
        printf("请输入你要创建的顺序表:\n");
        for(i=0;i<L->length;i++)
        {
                printf("第%d个元素是:",i+1);
                scanf("%d",&L->elem);
        }
        return 1;
}



void showlist(Sqlist *L) //遍历顺序表
{
        int i;
        printf("您的顺序表为:");
        for(i=0;i<L->length;i++)
                printf("%d ",L->elem);
        printf("\n");
}
void unionlist(Sqlist *L1,Sqlist *L2)//合并顺序表(判断L2中的每个元素是否在L1中,若不在则插入L1的尾部。)
{
        int a,b,i,j;
        int count;
        for(i=0;i<L2->length;i++)
        {
                a=L2->elem;
                for(j=0;j<L1->length;j++)
                {
                        b=L1->elem;
                        if(a==b)
                                break;
                }
                if(a!=b)
                {
                        count=L1->length;   //用count变量来标识L1的尾部,方便直接插入
                        L1->elem=a;
                        L1->length++;
                }
        }
}

int main()
{
        Sqlist L1,L2;
        printf("请创建第一个表:");
        initlist(&L1);
        creatlist(&L1);
        showlist(&L1);
        printf("请创建第二个表:");
        initlist(&L2);
        creatlist(&L2);
        showlist(&L2);
        printf("合并之后的表1为:");
        showlist (&L1);
        return 0;
}

愿你 发表于 2018-3-26 20:00:35

ba21 发表于 2018-3-26 19:38


你可以在帮我看看我现在的代码吗 还是和昨天的一样的题目合并 但是这次用顺序表完成


我还是打印出来的是第一个表
# include<stdio.h>
# include<stdlib.h>
# define ERROR -1
# define LISTSIZE 5
typedef struct{
&nbsp; &nbsp; &nbsp; &nbsp; int *elem;
&nbsp; &nbsp; &nbsp; &nbsp; int length;
&nbsp; &nbsp; &nbsp; &nbsp; int listsize;
}Sqlist;

int initlist(Sqlist *L) //初始化顺序表
{
&nbsp; &nbsp; &nbsp; &nbsp; L->elem=(int*)malloc(LISTSIZE*sizeof(int));
&nbsp; &nbsp; &nbsp; &nbsp; if(!(L->elem))
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return ERROR;
&nbsp; &nbsp; &nbsp; &nbsp; L->length=0;
&nbsp; &nbsp; &nbsp; &nbsp; L->listsize=LISTSIZE;
&nbsp; &nbsp; &nbsp; &nbsp; return 1;
}

int creatlist(Sqlist *L)&nbsp;&nbsp;//创建顺序表
{
&nbsp; &nbsp; &nbsp; &nbsp; int i;
&nbsp; &nbsp; &nbsp; &nbsp; printf("请输入你要创建的顺序表元素个数:\n");
&nbsp; &nbsp; &nbsp; &nbsp; scanf("%d",&L->length);
&nbsp; &nbsp; &nbsp; &nbsp; if(L->length>=L->listsize)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return ERROR;
&nbsp; &nbsp; &nbsp; &nbsp; printf("请输入你要创建的顺序表:\n");
&nbsp; &nbsp; &nbsp; &nbsp; for(i=0;i<L->length;i++)
&nbsp; &nbsp; &nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printf("第%d个元素是:",i+1);
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scanf("%d",&L->elem);
&nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; return 1;
}



void showlist(Sqlist *L) //遍历顺序表
{
&nbsp; &nbsp; &nbsp; &nbsp; int i;
&nbsp; &nbsp; &nbsp; &nbsp; printf("您的顺序表为:");
&nbsp; &nbsp; &nbsp; &nbsp; for(i=0;i<L->length;i++)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printf("%d ",L->elem);
&nbsp; &nbsp; &nbsp; &nbsp; printf("\n");
}
void unionlist(Sqlist *L1,Sqlist *L2)&nbsp;&nbsp;//合并顺序表(判断L2中的每个元素是否在L1中,若不在则插入L1的尾部。)
{
&nbsp; &nbsp; &nbsp; &nbsp; int a,b,i,j;
&nbsp; &nbsp; &nbsp; &nbsp; int count;
&nbsp; &nbsp; &nbsp; &nbsp; for(i=0;i<L2->length;i++)
&nbsp; &nbsp; &nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; a=L2->elem;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(j=0;j<L1->length;j++)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; b=L1->elem;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(a==b)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(a!=b)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count=L1->length;&nbsp; &nbsp;//用count变量来标识L1的尾部,方便直接插入
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; L1->elem=a;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; L1->length++;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; }
}

int main()
{
&nbsp; &nbsp; &nbsp; &nbsp; Sqlist L1,L2;
&nbsp; &nbsp; &nbsp; &nbsp; printf("请创建第一个表:");
&nbsp; &nbsp; &nbsp; &nbsp; initlist(&L1);
&nbsp; &nbsp; &nbsp; &nbsp; creatlist(&L1);
&nbsp; &nbsp; &nbsp; &nbsp; showlist(&L1);
&nbsp; &nbsp; &nbsp; &nbsp; printf("请创建第二个表:");
&nbsp; &nbsp; &nbsp; &nbsp; initlist(&L2);
&nbsp; &nbsp; &nbsp; &nbsp; creatlist(&L2);
&nbsp; &nbsp; &nbsp; &nbsp; showlist(&L2);
&nbsp; &nbsp; &nbsp; &nbsp; printf("合并之后的表1为:");
&nbsp; &nbsp; &nbsp; &nbsp; showlist (&L1);
&nbsp; &nbsp; &nbsp; &nbsp; return 0;
}

愿你 发表于 2018-3-26 20:01:17

# include<stdio.h>
# include<stdlib.h>
# define ERROR -1
# define LISTSIZE 5
typedef struct{
&nbsp; &nbsp; &nbsp; &nbsp; int *elem;
&nbsp; &nbsp; &nbsp; &nbsp; int length;
&nbsp; &nbsp; &nbsp; &nbsp; int listsize;
}Sqlist;

int initlist(Sqlist *L) //初始化顺序表
{
&nbsp; &nbsp; &nbsp; &nbsp; L->elem=(int*)malloc(LISTSIZE*sizeof(int));
&nbsp; &nbsp; &nbsp; &nbsp; if(!(L->elem))
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return ERROR;
&nbsp; &nbsp; &nbsp; &nbsp; L->length=0;
&nbsp; &nbsp; &nbsp; &nbsp; L->listsize=LISTSIZE;
&nbsp; &nbsp; &nbsp; &nbsp; return 1;
}

int creatlist(Sqlist *L)&nbsp;&nbsp;//创建顺序表
{
&nbsp; &nbsp; &nbsp; &nbsp; int i;
&nbsp; &nbsp; &nbsp; &nbsp; printf("请输入你要创建的顺序表元素个数:\n");
&nbsp; &nbsp; &nbsp; &nbsp; scanf("%d",&L->length);
&nbsp; &nbsp; &nbsp; &nbsp; if(L->length>=L->listsize)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return ERROR;
&nbsp; &nbsp; &nbsp; &nbsp; printf("请输入你要创建的顺序表:\n");
&nbsp; &nbsp; &nbsp; &nbsp; for(i=0;i<L->length;i++)
&nbsp; &nbsp; &nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printf("第%d个元素是:",i+1);
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scanf("%d",&L->elem);
&nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; return 1;
}



void showlist(Sqlist *L) //遍历顺序表
{
&nbsp; &nbsp; &nbsp; &nbsp; int i;
&nbsp; &nbsp; &nbsp; &nbsp; printf("您的顺序表为:");
&nbsp; &nbsp; &nbsp; &nbsp; for(i=0;i<L->length;i++)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printf("%d ",L->elem);
&nbsp; &nbsp; &nbsp; &nbsp; printf("\n");
}
void unionlist(Sqlist *L1,Sqlist *L2)&nbsp;&nbsp;//合并顺序表(判断L2中的每个元素是否在L1中,若不在则插入L1的尾部。)
{
&nbsp; &nbsp; &nbsp; &nbsp; int a,b,i,j;
&nbsp; &nbsp; &nbsp; &nbsp; int count;
&nbsp; &nbsp; &nbsp; &nbsp; for(i=0;i<L2->length;i++)
&nbsp; &nbsp; &nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; a=L2->elem;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(j=0;j<L1->length;j++)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; b=L1->elem;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(a==b)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(a!=b)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count=L1->length;&nbsp; &nbsp;//用count变量来标识L1的尾部,方便直接插入
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; L1->elem=a;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; L1->length++;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; }
}

int main()
{
&nbsp; &nbsp; &nbsp; &nbsp; Sqlist L1,L2;
&nbsp; &nbsp; &nbsp; &nbsp; printf("请创建第一个表:");
&nbsp; &nbsp; &nbsp; &nbsp; initlist(&L1);
&nbsp; &nbsp; &nbsp; &nbsp; creatlist(&L1);
&nbsp; &nbsp; &nbsp; &nbsp; showlist(&L1);
&nbsp; &nbsp; &nbsp; &nbsp; printf("请创建第二个表:");
&nbsp; &nbsp; &nbsp; &nbsp; initlist(&L2);
&nbsp; &nbsp; &nbsp; &nbsp; creatlist(&L2);
&nbsp; &nbsp; &nbsp; &nbsp; showlist(&L2);
&nbsp; &nbsp; &nbsp; &nbsp; printf("合并之后的表1为:");
&nbsp; &nbsp; &nbsp; &nbsp; showlist (&L1);
&nbsp; &nbsp; &nbsp; &nbsp; return 0;
}

愿你 发表于 2018-3-26 20:02:45

ba21 发表于 2018-3-26 19:38


代码在12楼{:10_264:}
页: [1]
查看完整版本: 为什么我的插入和删除的输出不正确呢 求帮助啊~