這裡蒐索程式師資訊,查找有用的技術資料
當前位置:首頁 » 服務存儲 » 順序表採用一維數組存儲元素
擴展閱讀
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,鏈式存儲是線性表採用指針連接的方式存儲。
線性表的長度是隨著線性表的插入刪除操作的進行而變化的,在任意時刻線性表的長度小於等於數組的長度,線性表的順序儲存是動態的,而一維數組是靜態的。