精华内容
下载资源
问答
  • 数据结构线性表

    2018-04-08 12:03:35
    线性表是最基本、最简单、也是最常用的一种数据结构线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。
  • 内涵顺序表和链表及各种功能内涵顺序表和链表及各种功能内涵顺序表和链表及各种功能内涵顺序表和链表及各种功能
  • 数据结构线性表快速排。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。序
  • 适合c语言数据结构初学者
  • 数据结构线性表代码

    2013-11-06 16:16:53
    纯版c语言实现的数据结构代码,里面多以指针为基础编写代码
  • - - PAGE # - { { - PAGE # - 数据结构顺序表的主要代码( LIZHULIN ) 1/* 有头结点的单链表的初始化建立(表头插入表尾插入) 求长 度插入删除输出 */ *单链表的初始化建立输出 */ * 单链表的初始化建立输出 */ #...
  • 数据结构;第二章 线性表 ; 基本内容 1 线性表的概念 2 线性表两类存储结构和它们的类型定义 3 在这些存储结构下线性表的基本操作的算法 学习要点 1 了解线性表逻辑结构的特征; 2 重点掌握线性表的顺序存储结构和链式...
  • 目录 ...线性表抽象数据类型基本操作 线性表的顺序表示 线性表的顺序储存结构定义和表示 顺序表的操作 线性表的链式表示 单链表 双链表 循环链表 顺序表和链表的比较 优缺点 存取方式 移动元素 ...

    目录

    1. 线性表的类型定义
      概念
      特征
      线性表抽象数据类型基本操作
    2. 线性表的顺序表示
      线性表的顺序储存结构定义和表示
      顺序表的操作
    3. 线性表的链式表示
      单链表
      双链表
      循环链表
    4. 顺序表和链表的比较
      优缺点
      存取方式
      移动元素

    在这里插入图片描述

    展开全文
  • C++ 数据结构线性表-数组实现 线性表的数组实现,实现几个核心的功能,语言是C++,如果有更好的想法和意见,欢迎留言~~~ /* Author : Moyiii * 线性表的数组实现,仅作学习之用,当然如果 * 你想拿去用,随你好啦...
  • 实验目的 1 掌握用 Turbo C 或 VC++上机调试线性表的基本方法 2 掌握线性表的基本操作 如插入删除查找以及线性表合并等运算在顺序存储结构和 链式存储结构上的运算并能够运用线性表基本操作解决问题实现相应算法 二...
  • 数据结构线性表详细代码,写得很不错 拿出来和大家分享~
  • 数据结构线性表实验

    2014-06-09 15:22:34
    数据结构实验线性表源代码。 满足线性结构的代码
  • 数据结构 线性表

    2015-06-07 22:18:23
    线性结构是最简单且最常用的数据结构线性表是一种典型的线性结构。 线性表的逻辑定义 线性表(Linear List)是由n(n≥0)个数据元素(结点)a1,a2,…,an组成的有限序列。 ① 数据元素的个数n定义为表的长度...
  • 数据结构和算法是程序设计的灵魂。其中线性表的顺序存储结构是最简单最常用的数据结构:用一段连续地址依次存储表中的数据元素。
  • 数据结构线性表(链式线形表 与 顺序线性表)的C语言实现,能够运行,可以作为参考
  • 数据结构线性表程序

    2014-04-07 15:04:17
    某软件公司大约有30名员工,每名员工有姓名、工号、职务等属性,每年都有员工离职和...把所有员工按照顺序存储结构建立一个线性表,建立离职和入职函数,当有员工离职或入职时,修改线性表,并且打印最新的员工名单。
  • 课程名称数据结构 实验名称线性表的操作 实验日期 班 级计科姓 名 学号仪器编号 实验报告要求 1.实验目的 2.实验要求 3.实验步骤 4.程序清单 5.运行情况 6.流程图 7.实验体会 实验目的 实验目的 熟悉线性表的定义和...
  • 数据结构中有关线性表的代码实现,完成了线性表创建,插入,删除,查找等功能。
  • 数据结构考研线性表

    2018-06-04 18:50:14
    这是数据结构中C语言版部分线性表的学习记录,有关动态在我的博客里有对应。方便大家参考。
  • 数据结构 线性表 插入 删除

    千次阅读 2020-04-22 22:03:17
    数据结构线性表的插入,删除 任务描述 本关任务:实现 step1/Seqlist.cpp 中的SL_InsAt、SL_DelAt和SL_DelValue三个操作函数,以实现线性表中数据的插入、删除与查找等功能。 相关知识) 线性表是最基本、最简单、也...

    数据结构线性表的插入,删除

    任务描述
    本关任务:实现 step1/Seqlist.cpp 中的SL_InsAt、SL_DelAt和SL_DelValue三个操作函数,以实现线性表中数据的插入、删除与查找等功能。

    相关知识)
    线性表是最基本、最简单、也是最常用的一种数据结构。线性表结构中,数据元素之间通过一对一首尾相接的方式连接起来。具体实现时,线性表可以采用不同的存储策略。下面给出了一种基于顺序存储的线性表实现方案:

    在这里插入图片描述
    该方案将线性表存储在一片连续空间里,并通过data、len和max三个属性元素。组织成为一个结构:

    data: 给出线性表存储空间的起始地址;
    max: 指明线性表存储空间最多可存储的数据元素个数;
    len: 当前线性表里的数据元素个数。
    为了讨论简化,我们假设每个数据元素是一个整数:

    typedef int T; // 数据元素的数据类型
    该线性表的结构定义如下:

    struct SeqList{
    T* data; // 数据元素存储空间的开始地址
    int len; // 线性表的当前长度
    int max; // 线性表的最大长度
    };
    以上示意图中的slist是指向该结构的一个指针,只要给定slist指针,就可对线性表进行操作。

    对数据元素进行操作处理是一个数据结构的重要组成部分。线性表涉及的主要操作如下:

    创建线性表:创建一个最多可存储max个数据元素的顺序存储的线性表,并将其初始状态设置为len=0。该操作函数具体定义如下,其返回值为slist:
    SeqList* SL_Create(int max)

    释放线性表存储空间:释放slist->data所指向的用于存储线性表数据元素的存储空间。该操作函数具体定义如下:
    void SL_Free(SeqList* slist)

    置空线性表:将当前线性表变为一个空表,实现方法是将slist->len设置为0。该操作函数具体定义如下:
    void SL_MakeEmpty(SeqList* slist)

    获取线性表当前长度:获取并返回线性表的当前长度slist->len。该操作函数具体定义如下:
    int SL_Length(SeqList* slist)

    判断线性表是否为空:若当前线性表是空表,则返回false,否则返回true。该操作函数具体定义如下:
    BOOL SL_IsEmpty(SeqList* slist)

    判断线性表是否已满:若线性表达到最大长度,则返回 true,否则返回false。该操作函数具体定义如下:
    BOOL SL_IsFull(SeqList* slist)

    返回线性表第i个数据元素:返回线性表的第i个数据元素slist->data[i]。该操作函数具体定义如下:
    T SL_GetAt(SeqList* slist, int i)

    修改线性表第i个数据元素: 将线性表的第 i个数据元素的值修改为 x。该操作函数具体定义如下:
    void SL_SetAt(SeqList* slist, int i, T x)

    在线性表位置i插入数据元素x: 将x插入slist->data[i]之前。若插入失败(i>slist->len 或i<0时,无法插入),返回 false,否则返回 true。该操作函数具体定义如下:
    BOOL SL_InsAt(SeqList* slist, int i, T x)

    删除线性表位置i处的数据元素: 删除线性表的i号数据元素。输入参数i范围应在[0,slist->len-1]内,否则会产生不能预料的异常或错误。返回被删除的数据元素的值。该操作函数具体定义如下:
    T SL_DelAt(SeqList* slist, int i)

    查找线性表中第一个值为x的数据元素的位置: 找到线性表中第一个值为x的数据元素的编号。返回值-1表示没有找到,返回值>=0表示该元素位置。该操作函数具体定义如下:
    int SL_FindValue(SeqList* slist, T x)

    删除线性表中第一个值为x的数据元素: 删除第一个值为x的数据元素,返回该数据元素的编号。如果不存在值为x的数据元素,则返回-1。该操作函数具体定义如下:
    int SL_DelValue(SeqList* slist, T x)

    打印线性表: 打印整个线性表。该操作函数具体定义如下:
    void SL_Print(SeqList* slist)

    编程要求
    本关任务是实现 step1/Seqlist.cpp 中的SL_InsAt、SL_DelAt和SL_DelValue三个操作函数,以实现线性表中数据的插入、删除与查找等功能。具体要求如下:

    SL_InsAT: 在顺序表的位置i插入结点x,即插入d[i]之前,i的有效范围[0,slist->len];

    SL_DelAt:删除顺序表slist的第i号结点, i的有效范围应在[0,slist->len)内,否则会产生异常或错误。返回被删除的数据元素的值;

    SL_DelValue:删除第一个值为x的结点,存在值为x的结点则返回结点编号,未找到返回-1;

    输入输出格式请参见后续测试样例。

    注意:本关必读中提及的其他操作已经由平台实现,你在实现本关任务的三个操作函数时,在函数体内可调用其他操作。`

    本关涉及的代码文件 Seqlist.cpp 中的 3 个操作函数的代码框架如下:

    bool SL_InsAt(SeqList* slist, int i, T x)
    // 在顺序表的位置i插入结点x, 插入在d[i]之前。i的有效范围[0,slist->len]
    {
    // 请在这里补充代码,完成本关任务
    /********** Begin /
    /
    * End /
    }
    T SL_DelAt(SeqList
    slist, int i)
    // 删除顺序表slist的第i号结点(i的有效范围应在[0,slist->len)内,否则会产生异常或错误)。返回被删除的数据元素的值。
    {
    // 请在这里补充代码,完成本关任务
    /
    * Begin /
    /
    * End /
    }
    int SL_DelValue(SeqList
    slist, T x)
    // 删除第一个值为x的结点。存在值为x的结点则返回结点编号, 未找到则返回-1
    {
    // 请在这里补充代码,完成本关任务
    /
    * Begin /
    /
    * End **********/
    }

    以下是代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include "Seqlist.h"
    SeqList* SL_Create(int maxlen)
    // 创建一个顺序表。
    // 与SqLst_Free()配对。
    {
    	SeqList* slist=(SeqList*)malloc(sizeof(SeqList));
    	slist->data = (T*)malloc(sizeof(T)*maxlen);
    	slist->max=maxlen;
    	slist->len=0;
    	return slist;
    }
    void SL_Free(SeqList* slist)
    // 释放/删除 顺序表。
    // 与SqLst_Create()配对。
    {
    	free(slist->data);
    	free(slist);
    }
    void SL_MakeEmpty(SeqList* slist)
    // 置为空表。
    {
    	slist->len=0;
    }
    int SL_Length(SeqList* slist)
    // 获取长度。
    {
    	return slist->len;
    }
    bool SL_IsEmpty(SeqList* slist)
    // 判断顺序表是否空。
    {
    	return 0==slist->len;
    }
    bool SL_IsFull(SeqList* slist)
    // 判断顺序表是否满。
    {
    	return slist->len==slist->max;
    }
    T SL_GetAt(SeqList* slist, int i)
    // 获取顺序表slist的第i号结点数据。
    // 返回第i号结点的值。
    {
    	if(i<0||i>=slist->len) {
    		printf("SL_GetAt(): location error when reading elements of the slist!\n");		
    		SL_Free(slist);
    		exit(0);
    	}
    	else 
    		return slist->data[i];
    }
    void SL_SetAt(SeqList* slist, int i, T x)
    // 设置第i号结点的值(对第i号结点的数据进行写)。
    {
    	if(i<0||i>=slist->len) {
    		printf("SL_SetAt(): location error when setting elements of the slist!\n");		
    		SL_Free(slist);
    		exit(0);
    	}
    	else 
    		slist->data[i]=x;
    }
    bool SL_InsAt(SeqList* slist, int i, T x)
    // 在顺序表的位置i插入结点x, 插入d[i]之前。
    // i 的有效范围[0,plist->len]。
    {
        // 请在下面的Begin-End之间补充代码,插入结点。
        /********** Begin *********/
    	int j;
    	{
    		for(j=i;j<slist->len;j++){
    			slist->data[j+1]=slist->data[j];
    		}
    		slist->data[i]=x;
    		slist->len++;
    	}
        /********** End **********/
    }
    T SL_DelAt(SeqList* slist, int i)
    // 删除顺序表plist的第i号结点。
    // i的有效范围应在[0,plist->len)内,否则会产生异常或错误。
    // 返回被删除的数据元素的值。
    {
        // 在下面的Begin-End之间补充代码,删除第i号结点。
        /********** Begin *********/
    	for(;i<slist->len;i++)
    	{
    		slist->data[i]=slist->data[i+1];
    	}
    	slist->len--;
        /********** End **********/
    }
    int SL_FindValue(SeqList* slist, T x)
    // 在顺序表表中查找第一个值为x的结点,返回结点的编号。
    // 返回值大于等于0时表示找到值为x的结点的编号,-1表示没有找到。
    {
    	int i=0;
    	while(i<slist->len && slist->data[i]!=x) i++;
    	if (i<slist->len) return i;
    	else return -1;
    }
    int SL_DelValue(SeqList* slist, T x)
    // 删除第一个值为x的结点。
    // 存在值为x的结点则返回结点编号, 未找到返回-1。
    {
        // 在下面的Begin-End之间补充代码,删除第一个值为 x 的结点。
        /********** Begin *********/
    	int i=0;
    	for(i=0;i<slist->len;i++)
    	{
    		if(slist->data[i]==x)
    		{
    			int j=i;
    			for(;i<slist->len-1;i++){
    				slist->data[i]=slist->data[i+1];
    			}
    			slist->len--;
    			return j;
    		}
    		return -1;
    	}
        /********** End **********/
    }
    void SL_Print(SeqList* slist)
    // 打印整个顺序表。
    {
    	if (slist->len==0) {
    		printf("The slist is empty.\n");		
    		return;
    	}
    	//printf("The slist contains: ");
    	for (int i=0; i<slist->len; i++) {
    		printf("%d  ", slist->data[i]);
    	}
    	printf("\n");	
    	
    }
    
    展开全文
  • 适合学习数据结构的同学
  • 数据结构线性表的构建 创建名为线性表的空项目,在创建的线性表中创建线性表cpp文件,之际按c文件的格式写代码即可。 首先要在开头添加两个头文件: #include <conio.h> (不然,getch()没有定义) #include &...

    数据结构线性表的构建
    创建名为线性表的空项目,在创建的线性表中创建线性表cpp文件,之际按c文件的格式写代码即可。
    首先要在开头添加两个头文件:
    #include <conio.h> (不然,getch()没有定义)
    #include <windows.h>
    然后,因为clrscr()在vs中没有提供,所以我们采用以下代码来说明,需要与#include <windows.h>相联系使用,添加的代码如下:
    void gotoxy(int a, int b){
    HANDLE hout;
    COORD coord;
    coord.X=a;
    coord.Y=b;
    hout=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hout,coord);
    }
    void clrscr(){
    system(“cls”);
    }
    然后,开始按数据结构的要求书写代码,具体代码如下所示:

    #include <stdio.h>
    #include <stdlib.h> 
    #include <conio.h>
    #include   <windows.h> 
    
    void gotoxy(int a, int b){	 
    	HANDLE hout;     
    	COORD coord;     
    	coord.X=a;     
    	coord.Y=b;     
    	hout=GetStdHandle(STD_OUTPUT_HANDLE);     
    	SetConsoleCursorPosition(hout,coord);
    }
    void clrscr(){	
    	system("cls");
    }
    
    /*定义*/ #define ListSize 100 
    	typedef struct 
    { 
    	int data[ListSize]; /*存放表结点*/  
    	int length;    /*表长度*/ 
    }
    SeqList; 
    void main()
    { 
    	void CreateList(SeqList *L,int n); 
    	void PrintList(SeqList *L,int n); 
    	int LocateList(SeqList *L,int x);  
    	void InsertList(SeqList *L,int x,int i); 
    	void DeleteList(SeqList *L,int i);      
    	SeqList L;  
    	int i,x; 
    	int n=10;    /*THE LENGTH OF LIST*/  
    	L.length=0;  	clrscr();  
    	CreateList(&L,n);  /*CREAT THE LIST*/ 
        PrintList(&L,n);   /*PRINT THE LIST*/  
        printf("INPUT THE RESEARCH ELEMENT"); 
        scanf("%d",&x);  i=LocateList(&L,x);  
        printf("the research position is %d\n",i);  /*查找*/ 
        printf("input the position of insert:\n");  
        scanf("%d",&i); 
        printf("input the value of insert\n");  
        scanf("%d",&x);  InsertList(&L,x,i);  /*插入*/ 
        PrintList(&L,n);   /*打印*/ 
        printf("input the position of delete\n"); 
        scanf("%d",&i);  
        DeleteList(&L,i);  /*删除*/  
        PrintList(&L,n);  
        getch();
    } 
     
    /*建立*/
    void CreateList(SeqList *L,int n)
    {
    	int i; 
    	printf("please input n numbers\n"); 
    	for(i=1;i<=n;i++) 
    	{
    		scanf("%d",&L->data[i]); 
    	} 
    	L->length=n; 
    } 
     
    /*打印*/ 
    void PrintList(SeqList *L,int n) 
    {
    	int i;
    	printf("the sqlist is\n"); 
    	for(i=1;i<=n;i++) 
    		printf("%d ",L->data[i]); 
     
    } 
     
    /*查找*/ 
    int LocateList(SeqList *L,int  x)
    {
    	int i;
    	for(i=1;i<=10;i++)  
    		if((L->data[i])==x) 
    			return(i);  
    		else return(0); 
    
     } 
     
    /*插入*/
    void InsertList(SeqList *L,int  x,int i)
    {
    	int j;
    	for(j=L->length;j>=i;j--) 
    		L->data[j+1]=L->data[j]; 
    	    L->data[i]=x; 
    	    L->length++; 
     
    } 
     
    /*删除*/ 
    void DeleteList(SeqList *L,int i)
    {  
    	int j;
    	for(j=i;j<=(L->length)-1;j++)
    		L->data[j]=L->data[j+1]; 
    
    

    ok,顺序表的一些基本操作就完成了!

    展开全文
  • 基于C++的顺序表,链表的程序设计。学生成绩管理。
  • 数据结构线性表操作

    2015-05-22 14:19:54
    这个是关于数据结构中对线性表的操作,包括对线性表进行插入删除,栈的操作等,能运行

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,994
精华内容 42,397
关键字:

数据结构线性表

数据结构 订阅
友情链接: c16x_bitio.rar