精华内容
下载资源
问答
  • 线性表删除第i个元素
    2021-04-24 15:32:09

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

    code:

    #include

    #include //或者是 #include 的头文件

    #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个元素

    千次阅读 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 或调试 >“开始调试”菜单
    
    
    展开全文
  • #include #include #define maxsize 100 #define false 0 #define true 1 typedef int ... printf("\n\n请输入您要删除第i个k数(i k):"); scanf("%d%d",&i,&k); delet(&a,i,k); out(&a); getch(); exit(0); }

    #include

    #include

    #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

    {

    scanf("%d",&L->a[i]);

    L->length++;

    }

    }

    void out(sqlist *L)

    {

    int i;

    printf("\n线性表为:\n\n");

    for(i=0;ilength;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;jlength;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个元素

    千次阅读 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 或调试 >“开始调试”菜单
    
    
    展开全文
  • #include #include #include #define NULL 0 //宏定义NULL为0 #define SIZ sizeof(struct stu) //宏定义 SIZ为sizeof(struct stu) struct stu //结构体 { int num;... } cout菜鸟一,在校学习,多多指教!
  • 08话:线性表删除某个元素

    千次阅读 2021-03-16 21:58:23
    根据之前定义的线性表ADT,现在还剩下一操作,就是删除了。今天把这操作弄完。了解线性表的插入,就很容易理解线性表.../* 初始条件:顺序线性表L已存在,1≤i≤ListLength(L) *//* 操作结果:删除L的第i个数据...
  • //删除第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_...
  • 线性表第i个位置起的k个元素删除

    千次阅读 2020-08-30 16:44:54
    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) .
  • 线性表第i个元素的时间与i的大小有关 Ⅲ.静态链表需要分配较大的连续空间,插入和删除不需要移动元素 Ⅳ.在一长度为n的有序单链表中插入一新结点并仍保持有序的时间复杂度为O(n) Ⅴ.若用单链表来表示队列,...
  • 线性表删除指定元素

    2022-08-12 20:32:15
    线性表删除指定元素
  • 线性表删除元素

    千次阅读 2019-09-27 07:40:38
    线性表删除元素 在线性表中删除指定元素: 1 class deleelem_in_linelist(): 2 def __init__(self,list,maxsize): 3 self.data = list 4 ...
  • 满意答案ooujfe2014.02.08采纳率:53%等级:12已帮助:40324人#include "windows.h"#include "stdio.h"#include "stdlib.h"#include "time.h"struct Node{int num;...struct Node *CreateLink(int n){int i=0;s...
  • } } 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]; } ...
  • 线性表——删除重复元素

    千次阅读 2021-09-16 20:30:41
    题目:移除线性表中的所有... // 能存放的最大元素个数 int curNum; // 数据元素的个数 DataType *element; }; typedef struct seqList *PseqList; 实现的两种思路 void delDuplicate_seq(PseqList L
  • 插入算法思路检查输入,如果插入位置不合理,抛出异常检查数组,如果线性表的长度大于等于数组长度,则抛出异常或动态增加容量遍历后移,从最后一个元素开始向前遍历到第i个位置,分别将他们都向后移动一位置插入...
  • 数据结构-线性表删除 C语言源码

    千次阅读 2019-03-17 13:08:37
    数据结构-线性表删除 C语言源码 #include&amp;lt;stdio.h&amp;gt; #include&amp;lt;stdlib.h&amp;gt; struct SC{ int*elem; int length; }; void ko(SC&amp;amp; l,int n) { int hj; l....
  • 操作结果:删除L的第i个数据元素,并用e返回其值,L长度- 1 */ Status ListDele(SqList *L,int i,ElemType *e) { int k; if(L -> length == 0) { return ERROR; } if(i > L -> length || i < 1) ...
  • 线性表元素删除

    2019-10-15 10:31:57
    #include"stdio.h" #include"windows.h" #define maxsize 10 typedef struct ...//delLIst1 函数为删除1个元素 int delList1(A *b, int k)//删除结构体a中位置为k的元素 { int i; if (k > b->...
  • 删除有序线性表中所有重复元素
  • 线性表删除最小元素,空出的位置用最后一个元素填补 题目:从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空则显示出出错信息并退出运行 代码...
  • 删除线性表中多个元素的高效方法

    千次阅读 2019-06-27 11:41:05
    删除线性表中所有值为xxx的元素。 方法一 用kkk记录顺序表中不等于xxx的元素的个数,扫描顺序表LLL,若当前元素不等于xxx,则将当前元素移动到kkk位置,若当前元素等于xxx,不做任何处理。 void del_x_1(SqList &...
  • 线性表删除操作

    千次阅读 2019-08-26 20:46:40
    //删除操作 Status DeleatElem(sqlist *l,int i) { if ((i<1)||(i>MAXSIZE)) { return err; } if (l->length==MAXSIZE) { return err; } if (i<=l->length) { for (k = i+1; k <= l...
  • 线性表2.1线性表的逻辑结构2.1.1线性表的概念2.1.2线性表的特征2.1.3线性表基本操作2.2线性表的顺序存储结构2.3线性表的链式存储结构2.3.1单链表2.3.2循环链表 2.1线性表的逻辑结构 ...a1称为线性表
  • 合并两个线性表中的元素,相同的元素只保留一 SeqList.h #pragma once #define ListSize 200 #include &lt;iostream&gt; using namespace std; typedef int DataType; typedef struct { DataType list...
  • 删除线性表中的重复元素

    千次阅读 2017-02-27 17:32:05
    小记:烦躁ing,看不进去其它东西,就来刷刷...原题大意就是对于一已经排好序的数组,删除重复元素。要求空间复杂度为O(1)。也就是不能重新申请新的数组。 解题思路:对于已经排好序的数组,那么重复元素必然是聚
  • (1)线性表

    千次阅读 2021-05-24 08:55:51
    (一)线性表一、线性表的定义1、线性结构的特点在数据元素的非空有限集中,(1)存在唯一的一被称作“”的数据元素;(2)存在惟一的一被称作“最后一”的数据元素;(3)除之外,集合中的每数据元素均...
  • 线性表)在一递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素。 输入 输入长度:6 输入数据:2 3 4 5 5 7 输出 2 3 4 5 7 样例...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,428
精华内容 22,571
关键字:

线性表删除第i个元素