精华内容
下载资源
问答
  • 线性表查找第i个元素

    2021-05-17 01:32:24
    // 删除.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //群:970353786 #include <stdio.h> #include <malloc.h> #define Maxsize 100 typedef int ElemType;//定义别名 typedef ...
    // 删除.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //群:970353786
    
    #include <stdio.h>
    #include <malloc.h>
    #define Maxsize 100
    typedef int ElemType;//定义别名  
    
    typedef struct Sqlist
    {
    	ElemType data[Maxsize];
    	int len;//当前长度 
    };
    
    //初始化线性表
    void Initlist(Sqlist& sq)
    {
    	sq.len = 0;
    }
    
    //求线性表长度
    int ListLength(Sqlist sq)
    {
    	return(sq.len);
    }
    
    //删除第i个元素
    int ListDelete(Sqlist& sq, int i)
    {
    	int j;
    	if (i<1 || i>sq.len) return 0;//i不合法
    	for (j = i; j < sq.len; j++)
    	{
    		sq.data[j - 1] = sq.data[j];//删除元素后,第i个后面的全部元素全部左移
    	}
    	sq.len--;//表长就减1
    	return 0;
    }
    
    
    int main()
    {
    	Sqlist sqa;
    	int i, j, n, m, s;
    	int num;
    	printf_s("请输入你要输入多少个数据:");
    	scanf_s("%d", &num);
    
    	for (i = 1; i <= num; i++)
    	{
    		printf_s("请输入链表第 % d个数据:", i);
    		scanf_s("%d", &sqa.data[i]);
    	}
    	sqa.len = num;
    	printf_s("删除第几个元素?\n");
    	scanf_s("%d", &n);
    	if (n > sqa.len)
    	{
    		printf_s("已经超出范围,无法删除\n");
    	}
    	else
    	{
    		ListDelete(sqa, n);
    		printf_s("删除的数据为:%d\t", sqa.data[n]);
    		printf_s("由于删除一个元素,长度变为:%d\n", ListLength(sqa));
    		//printf("%d", sqa.len);//也可以直接打印长度不调用函数
    	}
    
    }
    
    // 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
    // 调试程序: F5 或调试 >“开始调试”菜单
    
    
    展开全文
  • 线性表删除第i个元素

    2021-05-17 01:40:14
    // 删除.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //群:970353786 #include <stdio.h> #include <malloc.h> #define Maxsize 100 typedef int ElemType;//定义别名 typedef ...
    // 删除.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //群:970353786
    
    #include <stdio.h>
    #include <malloc.h>
    #define Maxsize 100
    typedef int ElemType;//定义别名  
    
    typedef struct Sqlist
    {
    	ElemType data[Maxsize];
    	int len;//当前长度 
    };
    
    //初始化线性表
    void Initlist(Sqlist& sq)
    {
    	sq.len = 0;
    }
    
    //求线性表长度
    int ListLength(Sqlist sq)
    {
    	return(sq.len);
    }
    
    //删除第i个元素
    int ListDelete(Sqlist& sq, int i)
    {
    	int j;
    	if (i<1 || i>sq.len) return 0;//i不合法
    	for (j = i; j < sq.len; j++)
    	{
    		sq.data[j - 1] = sq.data[j];//删除元素后,第i个后面的全部元素全部左移
    	}
    	sq.len--;//表长就减1
    	return 0;
    }
    
    
    int main()
    {
    	Sqlist sqa;
    	int i, j, n, m, s;
    	int num;
    	printf_s("请输入你要输入多少个数据:");
    	scanf_s("%d", &num);
    
    	for (i = 1; i <= num; i++)
    	{
    		printf_s("请输入链表第 % d个数据:", i);
    		scanf_s("%d", &sqa.data[i]);
    	}
    	sqa.len = num;
    	printf_s("删除第几个元素?\n");
    	scanf_s("%d", &n);
    	if (n > sqa.len)
    	{
    		printf_s("已经超出范围,无法删除\n");
    	}
    	else
    	{
    		ListDelete(sqa, n);
    		printf_s("删除的数据为:%d\t", sqa.data[n]);
    		printf_s("由于删除一个元素,长度变为:%d\n", ListLength(sqa));
    		//printf("%d", sqa.len);//也可以直接打印长度不调用函数
    	}
    
    }
    
    // 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
    // 调试程序: F5 或调试 >“开始调试”菜单
    
    
    展开全文
  • 这应该是数据结构的题目吧。这题是上课时我同学和我讨论的,当时没用线性表,只是用数组(栈)解决了。现在改用线性表试试,还不是很熟悉。 code: #include #include //或者是 #include 的头文件 ...i

    这应该是数据结构的题目吧。这题是上课时我同学和我讨论的,当时没用线性表,只是用数组(栈)解决了。现在改用线性表试试,还不是很熟悉。

    code:

    #include<stdio.h>
    #include<stdlib.h>  //或者是 #include<malloc.h> 的头文件
    #define N 10
    
    struct Sqlist
    {
        int *elem;
        int length;
        int listsize;
    }L;
    
    int DeleteK(struct Sqlist *L, int j, int k)
    {
        int i;
        for(i = 0; i <= L->length-j-k; i++)     //i=0,而不是i=1,因为第i个是起始元素
            L->elem[i+j-1] = L->elem[j+k+i-1];
        L->length -= k;
        return 0;
    }
    
    int main()
    {
        int i, j, k;
        L.listsize = N;
        L.elem = (int *)malloc(sizeof(int) * L.listsize); //申请listsize个大小为整型(int)字节的空间
    
        printf("输入原始线性表:\n");
    
        for(i = 0; i < N ;i++)
            scanf("%d", &L.elem[i]);
    
        L.length = L.listsize;
    
        printf("\n输入起始位置:");
        scanf("%d", &j);
        printf("\n输入要删除元素的个数:");
        scanf("%d", &k);
    
        DeleteK(&L, j, k);
    
        for(i = 0; i < N-k; i++)
            printf("%d ", L.elem[i]);
    
        return 0;
    }

    展开全文
  • 删除线性表第i个元素开始的k个元素

    千次阅读 2013-05-30 08:28:01
    #include #include #define maxsize 100 ... printf("\n\n请输入您要删除第i个k数(i k):");  scanf("%d%d",&i,&k);  delet(&a,i,k);  out(&a);  getch();  exit(0); }

    #include <stdio.h>
    #include <stdlib.h>
    #define maxsize 100
    #define false 0
    #define true 1
    typedef int elemtype;
    typedef struct
    {
     elemtype a[maxsize];
     int length;
    }sqlist;
    void creat(sqlist *L);
    void out(sqlist *L);
    void delet(sqlist *L,int i,int k);
    void creat(sqlist *L)
    {
     int i,k;
     printf("请输入你创建的线性表的大小:\t");
     scanf("%d",&k);
     printf("\n");
     for(i=0;i<k;i++)
     {
      scanf("%d",&L->a[i]);
      L->length++;
     }
     
    }
    void out(sqlist *L)
    {
         int i;
      printf("\n线性表为:\n\n");
      for(i=0;i<L->length;i++)
      {
       printf("%d\t",L->a[i]);
      }

    }
    void delet(sqlist *L,int i,int k)
    {
     int j;
            if(i<=L->length&&i>=1)
      {
       if((i+k)>L->length)
       {
        printf("error!\n");
       }
       else
       {
        for(j=i-1+k;j<L->length;j++)
        {
         L->a[i-1]=L->a[j];
         i++;
        }
        L->length=L->length-k;
       }

      }
      else
      {
       printf("\nerror!\n");
      }
    }
    void main()
    {
     sqlist *a;
     int i,k;
     creat(&a);
     getch();
     out(&a);
     getch();
     printf("\n\n请输入您要删除的第i个k个数(i k):");
     scanf("%d%d",&i,&k);
     delet(&a,i,k);
     out(&a);
     getch();
     exit(0);
    }

    展开全文
  • //删除第i个元素起的k个元素 void delete_seqlist(struct SeqList *,int,int); //显示结果 void show_seqlist(struct SeqList *); void main() { struct SeqList list,*fp; int len,i,k; fp=&list; init_...
  • 删除线性表中所有值为xxx的元素。 方法一 用kkk记录顺序表不等于xxx的元素的个数,扫描顺序表LLL,若当前元素不等于xxx,则将当前元素移动到kkk位置,若当前元素等于xxx,不做任何处理。 void del_x_1(SqList &...
  • typedef struct LNode{//链式存储 ElemType data;...{//删除第i个元素起的k个元素(带头结点的链表) LNode *q,*p,*s; int a ,b; for(a=0,p=head;a<i;a++) { q=p; p=p->next; if(p==NULL) .
  • 算法1:由于是顺序表进行删除要进行大量移动,时间复杂度比较大,所以选算法2较好。 #include<stdio.h> #include<stdlib.h> typedef int ElemType; typedef struct{ ElemType *elem; int length; int...
  • 删除线性表中同一个元素z 方法一:重建法 从左向右遍历线性表,找到不是z的元素,把这些元素放到新的线性表中;新的线性表可以以原线性表为基础建立。 void delnode(Sqlist *&l,Elem type z) { int i,k=0; //k...
  • } } void shanchu1(sqlist &L,int x) //删除指定的元素 方法1 { int i=0,j; while((i)&&L.a[i]!=x) { i++; } if(i==L.length) { return ; } while(i) { if(L.a[i]==x) { j=i; for(j=i;j;j++) { L.a[j]=L.a[j+1]; } ...
  • 删除线性表中的重复元素

    千次阅读 2017-02-27 17:32:05
    小记:烦躁ing,看不进去其它东西,就来刷刷...原题大意就是对于一已经排好序的数组,删除重复元素。要求空间复杂度为O(1)。也就是不能重新申请新的数组。 解题思路:对于已经排好序的数组,那么重复元素必然是聚
  • 【数据结构】 要求: a.输入一组整型元素序列,建立线性表。...在该线性表中删除或插入指定元素。 顺序存储结构 // An highlighted block #include<stdio.h> #include<stdlib.h> #define ListInitSize ...
  • #include"stdio.h" int main() ...printf("输入线性表"); for(i=0;i scanf("%d",&a[i]); printf("初始线表是:"); for(i=0;i printf("%d",a[i]); while(l>0) {while(1) {printf("\n要删除的位置");
  • 依次检查线性表 B的每个元素,如果该元素在线性表 A也出现,则在 A删除元素 求 A-B 即在 A依次查找 B元素,若该元素在 A出现,则删除 void DeleteElement(SeqList *A, SeqList B) { int flag, pos; ...
  • 3.对长度为n的顺序表L,编写一时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数据元素。 /** * 删除线性表中所有值为x的数据元素 * */ void deleteXElem(SqList *List, ElemType x) {...
  • 删除线性表中所有值为x的元素

    千次阅读 2019-08-28 16:42:05
    已知线性表A的长度为n, ...编写算法,删除线性表中所有值为x的元素。 # include <stdio.h> int main() { int a[]={1,2,1,1,1,3,1,1,4,1,5}; int count=0; int k=1, i; for (i=0; i<=10; i++) { if...
  • 对长度为 n 的顺序表 L,编写一时间复杂度为 O(n)、空间复杂度为 O(1) 的算法,该算法删除线性表中所有值为 x 的数据元素。 int deletex(List &L,int x){ int c = 0; for(int i = 0;i < L.Length;i++){...
  • 删除线性表中所有值为x的元素个

    千次阅读 2019-06-19 19:03:29
    数据结构2.2.3 综合应用题3. ...方法1:用k记录顺序表L不等于x的元素个数(即需要保存的元素个数) //删除顺序表所有值为x的元素 #include <stdio.h> #define MaxSize 50 typedef struct { int...
  • 写一算法,删除线性表中所有值小于x的元素。 输入格式 一行 输入表长 二行 输入指定表长的整数 三行 输入一整数 输出格式 一行 表的数据 二行 处理后的表的数据 输入样例 8 5 3 4 9 8 7 6 2 5 输出...
  • 删除线性表中所有值为x的数据元素,要求时间复杂度为O(n),空间复杂度为O(1)。删除线性表中所有值重复的数据元素
  • 线性表删除元素

    千次阅读 2018-08-13 08:54:03
    1197: 线性表删除元素 时间限制: 1 Sec 内存限制: 128 MB 提交: 14 解决: 13 ...输入包括:输入元素个数,以及相应的线性表元素,以及要删除的位置 输出 输出删除后的线性表 样例输入 5 1 2 3 4 5 3...
  • 删除线性表中所有值为x的数组元素。 比如一串数字值为 1,2,3,2,4,5,2,6,2 删除值为2的元素问题并不难但烦人的是要进行数据的覆盖!那么如果对从前往后的每值为x的数进行覆盖 事情就会变成这样: 1 2 ...
  • 假设该线性表的数据元素个数在最坏情况下不会超过100个。要求使用顺序表。 头文件为:SeqList.h #include<stdio.h> #define MaxSize 100 typedef int DataType; typedef struct { DataType list[MaxSize];...
  • 删除线性表中所有值为x的数据元素

    千次阅读 2019-12-29 20:49:48
    长度为n的顺序表L,编写一时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数据元素。 解法一: void del_x_l_1(Sqlist &L,int x){ int k=0; for(int i=0;i<L.length;i++){ ...
  • 问题:从线性表中删除最小元素的值(假设唯一),空出的位置由最后一个元素补齐: #include<stdio.h> #include<malloc.h> #define InitSize 100 typedef struct { int *data; int length; }SqList; /...
  • 空间复杂度为o(1)的算法,删除线性表中所有值为item的数据元素*/ //after all, what's the border of difficulty #include<stdio.h> #include<iostream.h> #include<malloc.h> #include...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,667
精华内容 18,666
关键字:

删除线性表中第i个元素