问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言&数据结构&线性表

发布网友 发布时间:2022-04-18 10:21

我来回答

3个回答

懂视网 时间:2022-04-18 14:42

数据结构线性表代码

线性表是n个数据特性相同的元素的组成有限序列,是最基本且常用的一种线性结构(线性表,栈,队列,串和数组都是线性结构),同时也是其他数据结构的基础。

对于非空的线性表或者线性结构的特点:

(1)存在唯一的一个被称作“第一个”的数据元素;

(2)存在唯一的一个被称作“最后一个”的数据元素;

(3)除第一个外,结构中的每个数据元素均只有一个前驱;

(4)除最后一个外,结构中的每个数据元素均只有一个后继;

线性表结构顺序表示(顺序表)

概念:用一组地址连续的存储单元依次存储线性表的数据元素,这种存储结构的线性表称为顺序表。

特点:逻辑上相邻的数据元素,物理次序也是相邻的。

只要确定好了存储线性表的起始位置,线性表中任一数据元素都可以随机存取,所以线性表的顺序存储结构是一种随机存取的储存结构,因为高级语言中的数组类型也是有随机存取的特性,所以通常我们都使用数组来描述数据结构中的顺序储存结构,用动态分配的一维数组表示线性表。

下面是用php来实现数据结构线性表(顺序表)的代码:

<?php
class ArrayList{
 private $list;
 private $size;
 public function __construct()
 {
 $this->list=array();
 $this->size=0;
 }
 //初始化链表
 public function InitList(){
 $this->list=array();
 $this->size=0;
 }
 //删除链表
 public function destoryList(){
 if (isset($this->list)){
  unset($this->list);
  $this->size=0;
 }
 }
 //清空链表
 public function clearList(){
 if (isset($this->list)){
  unset($this->list);
 }
 $this->list=array();
 $this->size=0;
 }
 //判断链表是否为空
 public function emptyList(){
 if (isset($this->list)){
  if ($this->size==0){
  return true;
  }else{
  return false;
  }
 }
 }
 //链表长度
 public function lengthList(){
 if (isset($this->list)){
  return $this->size;
 }else{
  return false;
 }
 }
 //取元素
 public function getElem($i){
 if ($i<1||$i>$this->size){
  die('failed');
 }
 if (isset($this->list)&&is_array($this->list)){
  return $this->list[$i-1];
 }
 }
 //是否在链表中
 public function locateElem($e){
 if (isset($this->list)&&is_array($this->list)){
  for ($i=0;$i<$this->size;$i++){
  if ($this->list[$i]==$e){
   return $i+1;
  }
  return 0;
  }
 }
 }
 //前驱
 public function priorElem($i){
 if ($i<1||$i>$this->size){
  die('failed');
 }
 if ($i==1){
  die('no prior');
 }
 if (isset($this->list)&&is_array($this->list)){
  return $this->list[$i-2];
 }
 }
 //后继
 public function nextElem($i){
 if ($i<1||$i>$this->size){
  die('failed');
 }
 if ($i==$this->size){
  die('no next');
 }
 if (isset($this->list)&&is_array($this->list)){
  return $this->list[$i];
 }
 }
 //插入元素
 public function insertList($i,$e){
 if ($i<1||$i>$this->size){
  die('failed');
 }
 if (isset($this->list)&&is_array($this->list)){
  if ($this->size==0){
  $this->list[0]=$e;
  $this->size++;
  }else{
  for($j=$this->size-1;$j>=$i;$j--){
   $this->list[$j]=$this->list[$j-1];
  }
  $this->list[$i-1]=$e;
  $this->size++;
  }
 }
 }
 //删除元素
 public function deleteList($i){
 if ($i<1||$i>$this->size){
  die('failed');
 }
 if (isset($this->list)&&is_array($this->list)){
  if ($i==$this->size){
  unset($this->list[$i-1]);
  }else{
  unset($this->list[$i-1]);
  for ($j=$i;$j<$this->size;$j++){
   $this->list[$j-1]=$this->list[$j];
  }
  }
  $this->size--;
 }
 }
 //遍历
 public function printList(){
 if (isset($this->list)&&is_array($this->list)){
  foreach ($this->list as $value) {
  echo $value.' ';
  }
 }
 }
}

更多PHP相关知识,请访问PHP中文网!

热心网友 时间:2022-04-18 11:50

编译通过了,全是低级错误,逻辑问题没有检查,自己再看看吧
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct
{
int data[MAXSIZE];//-<-------
int length;
}SeqList;//<------------

typedef SeqList * PSeqList;

PSeqList Init_SeqList(void )
{  /*创建一顺序表,入口参数无,返回一个指向顺序表的指针,指针值为零表示分配空间失败*/
PSeqList  SeqListPoint;
SeqListPoint =( PSeqList )malloc(sizeof(SeqList)); 
if(SeqListPoint == NULL)     /*若SeqListPoint=NULL表示分配失败*/
return  NULL;
else
SeqListPoint -> length =0;     
return (SeqListPoint);
}
void Destroy_SeqList(PSeqList SeqListPoint) 

{
    if (SeqListPoint)
free (SeqListPoint) ;
//SeqListPoint=NULL; 
return ;  
} //-<---------
int Location_SeqList (PSeqList SeqListPoint, int x)
{  /*顺序表检索,入口参数:为顺序表指针,检索元素,
返回元素位置,-1表示表不存在,0表示查找失败*/
int i=0;
if (!SeqListPoint) 

printf("表不存在"); //-<----------
return(-1); /*表不存在,不能检索*/

while (i< SeqListPoint->length && SeqListPoint->data[i]!= x)
i++;
if (i>=SeqListPoint-> length)  return 0;
else
return (i + 1);  


int Delete_SeqList(PSeqList SeqListPoint, int i) //-<-------
{  /*顺序表删除,入口参数:顺序表指针,删除元素位置,返回标志1表示成功,0表示删除位置不合法,-1表示表不存在*/
int  j;
if (!SeqListPoint)

printf("表不存在");//-<---------- 
return(-1); /*表不存在,不能删除元素*/

if(i<1 || i> SeqListPoint -> length)  /*检查删除位置的合法性*/
{  
printf ("删除位置不合法");//-<---------- 
return(0);

for(j=i;j< SeqListPoint -> length;j++)
SeqListPoint ->data[j-1]= SeqListPoint ->data[j]; /*向上移动*/
SeqListPoint -> length --;    
return (1);        /*删除成功*/

int Length_SeqList (PSeqList SeqListPoint)
{  /*求顺序表的长度,入口参数:为顺序表指针,返回表长,-1表示表不存在*/
if (SeqListPoint)
        return (SeqListPoint-> length) ;
return (-1);
}         


int main()
{
    PSeqList  SeqListPoint;
    SeqListPoint =Init_SeqList( );
int i=0,n,m;
while(i<MAXSIZE)
{
SeqListPoint->data[i]=i+1; //-<------
i++;
}
printf("请输入要删除的元素:");//-<--------
scanf("%d",&n);
printf("删除前的元素为:");
    n=Length_SeqList (SeqListPoint);
for(i=0;i<n;i++)
printf("%d",SeqListPoint->data[i]); //-<-----
printf("\n");
m=Location_SeqList (SeqListPoint,n);
Delete_SeqList(SeqListPoint,m);
printf("\n");
printf("删除后的元素为:");
for(i=0;i<n;i++)
printf("%d",SeqListPoint->data[i]);//-<-----
printf("\n");
    Destroy_SeqList(SeqListPoint) ;
return 0;//
}

热心网友 时间:2022-04-18 13:08

第3题中带头结点单链表L的第i个结点前插入值为x的结点。插入成功,则输出插入后链表中的所有元素;若插入失败,则给出提示。
实验测试数据基本要求:i分别为0,1,n,n+1,n+2;x=100
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
形容手表很舒服的句子 情侣手表的对话句子 租门面和房东鉴了十年合同,房东要退店面,我可以不退吗,继续经 ...一篇朝花夕拾里十篇小短文的主要内容及作者的情感和主要人物的... 什么叫狼狗 狼狗的生活习性有哪些? 起个姓罗好听的宝宝名字 野火的近义词 个是词语解释 请旌词语解释 聚酯//pe做成塑料袋,袋子表面发粘怎么才能让其不发粘 FL-28是哪类PE底漆流平剂,用在木具不饱和聚酯PE底漆用量0.1%,流平好,冷热循环不发白? 两根单条内存超频可以吗 不饱和聚酯PE树脂或PE漆加了兰水(蓝水)异辛酸钴,绿化严重,怎么防止PE绿化的产生? 请问PET,PVC,PE,OPP有什么区别? 不饱和树脂油漆涂料(PE)的缺点有哪些? 婚外情是否能够长久? 一见倾心!化繁为简!vivo X27系列正式发布 求助,连上电脑提示扫描并修复可移动硬盘 移动硬盘提示需要扫描和修复 梦见捉泥鳅和鱼然后送人了 单个文件超4G怎么复制到FAT32格式U盘/文件过大 我买了一个32g金士顿u盘,可能想拷贝大文件,需要转换ntfs格式 FAT32格式的u盘怎么把大于4g的文件复制进去和复制出来,需要转格式吗? 鸿蒙更新没有超级终端显示 曾被前丈母娘嫌弃,娶大6岁二婚妻子,如今怎样了呢? 糖尿病平时可以吃馍馍吗? 糖尿病能吃酵母发的馒头吗 42岁张译隐瞒13年爱妻曝光!她是谁? 承兑汇票是什么意思?可以用于公司和个人之间吗? 最短的周期是多久? 防沉迷健康系统怎么打开二维码 一码健康中系统怎么下载医生护士二维码 踏板车机油尺看不到机油了 怎样关掉调制解调器,是直接切断电源,还是要关掉调制解调器本身的开关 电脑连不上网说 调制解调器拔下来10秒钟怎么回事 调制解调器在哪里的,怎么关闭的?? 如何给别人发腾讯健康系统帮忙验证 怎么关闭手机调制解调器。我把数据线一连就出来了,求解 win7 关闭调制解调器 调制解调器的问题 三星i9008 从哪里关闭调制解调器? 宽带外置调制解调器在哪关闭 怎么去除纸张上的油渍? 如何去除纸上油渍 开汽车美容店办营业执照需要什么证件 想开一家汽车美容店需要办什么手续,具备什么条件? 微信冻结了但是绑定的手机号不用了怎么办被盗了验证手机不用了? 数据结构线性表的问题,一个插入操作的代码是否有错。 做梦梦见猫很很咬一口,看见我又可怜 转账截图能作假嘛