首页 > 编程语言 >数据结构与算法之线性表的基本操作

数据结构与算法之线性表的基本操作

时间:2024-10-19 14:18:07浏览次数:9  
标签:线性表 int ElemType elem SqList printf 基本操作 数据结构

数据结构之线性表的基本操作

初始化,插入,获取

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define OK 1
#define OVERFLOW -1
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int ElemType;
typedef struct{
	ElemType *elem;
	int length;
	int listsize;
}SqList;
int main(){
	int InitList(SqList &L);
	int input(SqList &L);
	int ListLength(SqList L);
	int ListInsert(SqList &l,int i,ElemType e);
	int GetElem(SqList L,int i,ElemType &e);
	SqList L;
	int i=0;
	ElemType e;
	printf("输出结果为1则构造成功:%d\n",InitList(L));
	input(L);
	printf("在线性表中输入元素后,线性表为:\n");
	for(int j=0;j<ListLength(L);j++){
		printf("%d ",L.elem[j]);
	}
	printf("\n想要得到第几个位置的元素:");
	scanf("%d",&i);
	GetElem(L,i,e);
	printf("该元素为:%d",e);	
	printf("\n请输入在第几个位置前插入元素:"); 
	scanf("%d%d",&i,&e);
	ListInsert(L,i,e);
	printf("插入新元素后,线性表为:\n"); 
	for(int k=0;k<ListLength(L);k++){
		printf("%d ",L.elem[k]);
	}

} 
int InitList(SqList &L){
	L.elem=(ElemType*)malloc(sizeof(ElemType)*LIST_INIT_SIZE);
	if(!L.elem){
		exit(OVERFLOW);
	}
	L.length=0;//线性表中元素个数为零 
	L.listsize=LIST_INIT_SIZE;
	return OK;
	}
int input(SqList &L){
	printf("请输入线性表中元素的个数:");
	scanf("%d",&L.length);
	printf("线性表中的元素为:\n");
	for(int i=0;i<L.length;i++){
		scanf("%d",&L.elem[i]);
	}
	return OK;
}
int ListLength(SqList L){
	return L.length;
} 
int ListInsert(SqList &L,int i,ElemType e){
	if(!L.elem){
		exit(OVERFLOW);
	}
	ElemType *p,*q;
	p=&(L.elem[i-1]);
	for(q=&(L.elem[ListLength(L)-1]);q>=p;q--){
		*(q+1)=*q;
	}
	L.elem[i-1]=e;
	L.length++;
	return OK;
}
int GetElem(SqList L,int i,ElemType &e){
	e=L.elem[i-1];
	return OK;
}

结果:

在这里插入图片描述

标签:线性表,int,ElemType,elem,SqList,printf,基本操作,数据结构
From: https://blog.csdn.net/2401_83428965/article/details/143063230

相关文章

  • 【高阶数据结构】揭开红黑树‘恶魔’的面具:深度解析底层逻辑
    高阶数据结构相关知识点可以通过点击以下链接进行学习一起加油!二叉搜索树AVL树大家好,我是店小二,欢迎来到本篇内容!今天我们将一起探索红黑树的工作原理及部分功能实现。红黑树的概念相对抽象,但只要我们一步步深入,定能慢慢揭开它的神秘面纱......
  • 高清图解28个高并发之数据结构/数据结构场景匹配技巧分析(高并发精通篇三)
    Java中的Map家族包括基于哈希表的HashMap,维护插入顺序的LinkedHashMap,基于红黑树的TreeMap,线程安全的Hashtable和ConcurrentHashMap,以及基于身份比较的IdentityHashMap和基于弱引用的WeakHashMap。Queue家族则涵盖了Vector、Stack、Properties以及多种List和Deque实现,适用......
  • 02.数据结构介绍&顺序表、链表简述+对比
    目录一、什么是数据结构二、线性表三、顺序表四、链表五、顺序表和链表的区别一、什么是数据结构          数据结构是由“数据”和“结构”两个词组合而来。    数据:常见的数值1、2、3......,网页里的文字图片信息等都是数据。    ......
  • 【数据结构】分治算法经典: 快速排序详解
    快速排序(Quicksort)是一种高效的排序算法,最早由TonyHoare在1960年提出。它采用了分治(DivideandConquer)策略,平均时间复杂度为O(nlog......
  • 线性表学习1
    线性结构若结构是非空有限集,则有且仅有一个开始结点和一个终端结点,并且除了首尾节点外所有结点都最多只有一个直接前趋和一个直接后继。可表示为:(a1,a2,a3,...)特点:只有一个首结点和尾结点本质特征:除首尾结点外,其他结点只有一个直接前驱和一个直接后继。简言之,线性结构反映......
  • 数据结构与算法 课程随记
    因为有时候需要在不同设备编辑同一份文档,本地不太方便了,先在放着博客园比较省事吧。但是博客园是不是快要四了啊,没事再整一个个人博客吧。内容非常杂,因为不想去上课所以还是有点东西不会,就记录一下查不会东西的时候学会的东西。没什么参考价值。Classhttps://www.runoob.com/c......
  • 数据结构(JAVA)包装类&泛型
    文章目录包装类基本数据类型和对应的包装类装箱和拆箱面试题泛型什么是泛型泛型的语法泛型类的使用泛型的使用裸类型(RawType)(仅需了解)擦除机制泛型的上界泛型方法包装类基本数据类型和对应的包装类注意,除了int基本数据类型的包装类是Integer和char基本数据类......
  • 数据结构
    Lua数据类型Lua是动态类型语言,变量不要类型定义,只需要为变量赋值。值可以存储在变量中,作为参数传递或结果返回。Lua中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread和table。数据类型描述nil这个最简单,只有值nil属于该类,表示一个无......
  • 算法与数据结构——桶排序
    桶排序前面的快速排序、归并排序、堆排序等都是属于“基于比较的排序算法”,它们通过比较元素间的大小来实现排序。此类排序算法的时间复杂度无法超越O(nlogn)。下面介绍几种“非比较排序算法”,它们的时间复杂度可以达到线性阶。桶排序(bucketsort)是分治策略的一个典型应用。它通......
  • 【数据结构】之链表详解
    链表是一种常用的数据结构,它是一种线性数据结构,但与数组不同,它并非连续存储数据,而是通过指针将数据节点连接起来。每个节点都包含数据域和指向下一个节点的指针域。这种结构赋予链表独特的优势和局限性,使其在某些场景下优于数组,在另一些场景下则相对逊色。本文将深入探讨链表,包......