当前位置:首页 » 服务存储 » 顺序表采用一维数组存储元素
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

顺序表采用一维数组存储元素

发布时间: 2022-09-26 09:42:29

⑴ 二叉排序树,用顺序表(一维数组)作存储结构

#include <iostream>
#include <malloc.h>
using namespace std;

typedef struct _Node
{
int key;
struct _Node *lchild,*rchild;
} *nodePtr;

nodePtr search(nodePtr t,int key)//查找关键字key
{
if (t == NULL)
{
return NULL;
}
else if(t->key == key)
{
return t;
}
else if (t->key < key)
{
return (search(t->rchild,key));
}
else
{
return (search(t->lchild,key));
}
}

nodePtr insert(nodePtr t,nodePtr s)//插入节点
{
if (t == NULL)
{
t = s;
}
else if (t->key > s->key)
{
t->lchild=insert(t->lchild,s);
}
else
{
t->rchild=insert(t->rchild,s);
}
return (t);
}

void order(nodePtr t)//中序遍历
{//对二叉树T作中序遍历,输出结果
if (t != NULL)
{
order(t->lchild);
cout<<t->key<<" ";
order(t->rchild);
}
}

void destroy(nodePtr t)//销毁
{
if (t != NULL)
{
order(t->lchild);
order(t->rchild);
free(t);
}
}

nodePtr create(int a[],int n)//建树
{//生成一棵二叉排序树
nodePtr t,s;
int i;

t = NULL;
for (i = 0; i < n; i++)
{
s = (nodePtr)malloc(sizeof(struct _Node));
if(s==NULL)
{
printf("ERROR!\n");
destroy(t);
return NULL;
}
s->key = a[i];
s->lchild = NULL;
s->rchild = NULL;
t = insert(t,s);
}
return t;
}

nodePtr delNode(nodePtr p)
{
if(p->lchild!=NULL)
{
nodePtr r = p->lchild; //r指向其左子树;
while(r->rchild != NULL)//搜索左子树的最右边的叶子结点r
{
r = r->rchild;
}
r->rchild = p->rchild;

nodePtr q = p->lchild; //q指向其左子树;
free(p);
return q;
}
else
{
nodePtr q = p->rchild; //q指向其右子树;
free(p);
return q;
}
}

//删除该结点
nodePtr remove(nodePtr b,int x)
{
if (b)
{
if (b->key == x)
b = delNode(b);
else if (b->key > x)
b->lchild = remove(b->lchild, x);
else
b->rchild = remove(b->rchild, x);
}
return b;
}

int main()
{
nodePtr t;
char *p,a[80];//="9 12 17 3 15 21 27 28 19 25 33 37 86 65 91";
int b[20],n,i,x;

//以回车为输入结束标志,输入数列L
gets(a);
for(n=0,p=a;p!=NULL;n++)
{
if(sscanf(p,"%d",&b[n])==EOF)
break;
while(*p==' ')p++;
p=strchr(p,' ');
}
//生成一棵二叉排序树
t=create(b,n);
//对二叉树T作中序遍历,输出结果
order(t);
printf("\n");
printf("输入元素X:");
scanf("%d",&x);//x=12;
if(remove(t,x))
{
//做中序遍历
order(t);
printf("\n");
}
else
{
printf("无%d\n",x);
}

//销毁二叉树
destroy(t);
return 0;
}

⑵ 顺序表用一维数组作为存储结构,因此顺序表是一维数组 这句话对吗为什么

不一定,序列是表述方式。但是表述的进制可以变化。

⑶ 用顺序表(一维数组)作存储结构 c语言编程

#include
<stdio.h>
typedef
struct{
int
data[100];
int
length;
}Seqlist;//定义Seq这个新的数据zd类型
void
creat(Seqlist
&L);//建立线性表
void
show(Seqlist
L);//显示线性表
int
main()
{
Seqlist
L;
L.length=0;//初始化线性表的长度为0
creat(L);
show(L);
return
0;
}
void
creat(Seqlist
&L)
{
int
a;
printf("请输入专要创建的元素的个数:\t");
scanf("%d",&a);
for(int
i=0;i<a;i++)
{
printf("请输入第%d个元属素\t",i+1);
scanf("%d",&L.data[i]);
L.length++;
}
}
void
show(Seqlist
L)
{
int
i;
printf("线性表中的元素为:\n");
for(i=0;i<L.length;i++)
printf("%d\t",L.data[i]);
printf("\n");
}

⑷ 顺序表用一维数组作为存储结构,因此顺序表是一维数组,这句话对吗分析一下,谢谢!

这句话不太对,顺序存储的的线性表叫顺序表,实际上顺序存储不一定必须是一维数组,只要空间位置能够表示逻辑关系就可以了,数组只是顺序存储中最简单的

⑸ 网教作业求助

一:
1:不可能出现的出栈序列为:
(3,2,6,1,4,5),(5,6,4,2,3,1),(1,2,5,3,4,6)
2:{15,27,26,49,38,62,39,51},{15,23,26,68,94,72,71,73},{94,72,73,26,71,23,68,15}
3:队列,栈
4:
从队头删除一个元素
判断一个队列是否为空
读取队头元素的值
三:
1:正确
2:错误
3:正确
4:正确
5:正确
6:错误
7:错误
8:错误
9:错误
10:正确
11:正确
12:错误
13:正确
14:正确
15:正确

⑹ 用顺序表(一维数组)作存储结构 c语言编程

#include <stdio.h>
typedef struct{
int data[100];
int length;
}Seqlist;//定义Seq这个新的数据类型
void creat(Seqlist &L);//建立线性表
void show(Seqlist L);//显示线性表
int main()
{
Seqlist L;
L.length=0;//初始化线性表的长度为0
creat(L);
show(L);
return 0;
}
void creat(Seqlist &L)
{
int a;
printf("请输入要创建的元素的个数:\t");
scanf("%d",&a);
for(int i=0;i<a;i++)
{
printf("请输入第%d个元素\t",i+1);
scanf("%d",&L.data[i]);
L.length++;
}
}
void show(Seqlist L)
{
int i;
printf("线性表中的元素为:\n");
for(i=0;i<L.length;i++)
printf("%d\t",L.data[i]);
printf("\n");
}

⑺ .顺序表是使用一维数组实现的线性表这句话对么

顺序表可以使用一维数组来实现。但不仅仅只是一维数组可以实现。顺序表指的是存储单元在内存中是连续存放的,数组是这样存储的。

⑻ 在C语言中,一维数组与顺序表有何区别

顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。
只能这么说
数组是顺序表的载体
顺序表比数组包含的操作要多

⑼ 线性表的顺序存储结构和一维数组有什么区别哪个是静态存储空间

顺序表是计算机内以一维数组形式表示的线性表,
线性表有链式存储存与顺序储存两种方式:
1,顺序储存结构是指用一组地址连续的存储单元依次存储数据元素的线性结构。
2,链式存储是线性表采用指针连接的方式存储。
线性表的长度是随着线性表的插入删除操作的进行而变化的,在任意时刻线性表的长度小于等于数组的长度,线性表的顺序储存是动态的,而一维数组是静态的。