2023年浙江省数据加强

发布 2022-10-24 06:57:28 阅读 1275

1、设有一组初始记录关键字为(45,80,48,40,22,78),要求构造一棵二叉排序树并给出构造过程。

2、本题要求建立有序的循环链表。从头到尾扫描数组a,取出a[i](0<=ilinkedlist creat(elemtype a,int n)

/由含n个数据的数组a生成循环链表,要求链表有序并且无值重复结点。

linkedlist h;

h=(linkedlist)malloc(sizeof(lnode));申请结点。

h->next=h; /形成空循环链表。

for(i=0;i //查找a[i]的插入位置。

if(p==h ||p->data!=a[i重复数据不再输入。

s=(linkedlist)malloc(sizeof(lnode));

s->data=a[i]; pre->next=s; s->next=p;//将结点s链入链表中。

//forreturn(h);

算法结束。3、设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左,右两个儿子的结点个数n2;只有非空左儿子的个数nl;只有非空右儿子的结点个数nr和叶子结点个数n0。

n2、nl、nr、n0都是全局量,且在调用count(t)之前都置为0.

typedef struct node

int data; struct node *lchild,*rchild;}node;

int n2,nl,nr,n0;

void count(node *t)

if (t->lchild!=null) if (1)__n2++;else nl++;

else if (2)__nr++;else (3)__

if(t->lchild!=null)(4)__if (t->rchild!=null) (5)__

26.树的先序非递归算法。

void example(b)

btree *b;

btree *stack[20], p;

int top;

if (b!=null)

top=1; stack[top]=b;

while (top>0)

p=stack[top]; top--;

printf(“%d”,p->data);

if (p->rchild!=null)

if (p->lchild!=null)

4、设有一组初始记录关键字序列(k1,k2,…,kn),要求设计一个算法能够在o(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于ki,右半部分的每个关键字均大于等于ki。

void quickpass(int r,int s, int t)

int i=s, j=t, x=r[s];

while(iwhile (ix) j=j-1; if (iwhile (i}

r[i]=x;

2023年浙江省数据概述基础

1 已知有向图g v,e 其中v e 写出g的拓扑排序的结果。g拓扑排序的结果是 v1 v2 v4 v3 v5 v6 v7 2 设一棵树t中边的集合为,要求用孩子兄弟表示法 二叉链表 表示出该树的存储结构并将该树转化成对应的二叉树。3 两棵空二叉树或仅有根结点的二叉树相似 对非空二叉树,可判左右子树...

2019浙江省数据结构 必备

1 设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为 b a 3,2,5,6,4,1 b 1,5,4,6,2,3c 2,4,3,5,1,6 d 4,5,3,6,2,1 2 n个顶点的图的最小生成树必定 d 是不正确的描述。a 不唯一b 权的总和唯一c 不含回路d 有n条边。3...

2019浙江省数据结构基础 必备

1 数据结构中,在逻辑上可以把数据结构分成 b a 动态结构和静态结构b 线性结构和非线性结构。c 紧凑结构和非紧凑结构d 内部结构和外部结构。2 若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个 d a 上三角矩阵b 稀疏矩阵c 对角矩阵d 对称矩阵。3 在一个单链表中,已知q结点是p...