一个关于数据结构二叉树的小问题

img


我想问问,那个二叉树的顺序存储结构中,空的那些是不是0啊?它那里只是空着,也不写个0,我有点不确定算不算那个结点为空。
不是个很大的问题,还望解答一下。

不是0,空着就代表它那个节点在二叉树里是没有的

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/346493
  • 这篇博客也不错, 你可以看下校招编程练习题2 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
  • 除此之外, 这篇博客: 将两个递增的有序链表合并为一个递增的有序链表,表中不允许有重复数据且不另占用其他储存空间中的 将两个递增的有序链表合并为一个递增的有序链表,表中不允许有重复数据且不另占用其他储存空间。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 结果截图:
    在这里插入图片描述
    源代码:

    #include <stdio.h>
    #include <stdlib.h>
    #define MAXSIZE 100
    #define OK 1
    typedef int ElemType;
    typedef int Status;
    //定义线性表
    typedef struct LNode
    {
    	ElemType data;
    	struct LNode *next;
    } LNode,*LinkList;
    // 初始化
    Status InitList (LinkList &L)
    {
    	L=new LNode;
    	L->next=NULL;
    	return OK;
    }
    LinkList pa,pb,pc;
    LinkList La,Lb,Lc;
    //合并链表
    void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc)
    {
    	pa=La->next;
    	pb=Lb->next;
    	pc=Lc=La;
    	while(pa&&pb)
    	{
    		if(pa->data<=pb->data)
    		{
    			pc->next=pa;
    			pc=pa;
    			if(pa->data==pb->data)
    				pb=pb->next;
    			pa=pa->next;
    		}
    		else
    		{
    			pc->next=pb;
    			pc=pb;
    			pb=pb->next;
    		}
    	}
    	pc->next=pa?pa:pb;
    	delete Lb;
    }
    int main()
    {
    	int i,n;
    	InitList(La);
    	InitList(Lb);
    	printf("输入La的长度并赋值:");
    	scanf("%d",&n);
        for(i=0;i<n;i++)
    	{
        	pa=new LNode; 
    	    scanf("%d",&pa->data);
    	    pa->next=La->next;
    	    La->next=pa;
    	}
    	pa=La->next;
    	while(pa)
    	{
    		printf("%2d",pa->data);
    		pa=pa->next;
    	}
    	printf("\n");
    	printf("请输入Lb的长度并赋值:");
    	scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    		pb=new LNode;
    		scanf("%d",&pb->data);
    		pb->next=Lb->next;
    		Lb->next=pb;
    	}
    	pb=Lb->next;
    	while(pb)
    	{
    		printf("%2d",pb->data);
    		pb=pb->next;
    	}
    	printf("\n");
    	MergeList_L(La,Lb,Lc);
    	pc=La->next;
    	printf("合并后的链表为\n");
    	while(pc)
    	{
    		printf("%2d",pc->data);
    		pc=pc->next;
    	}
    	printf("\n");
    }
    
    
  • 您还可以看一下 铭智老师的一个完整网站的渗透测试课程中的 整体渗透测试思路介绍小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    回答:在二叉树的顺序存储结构中,空节点可以通过标记位或者其他方式来表示。一般情况下,标记位的值为null或者-1。所以空节点并不是固定的0,具体的表示要看具体的实现。在操作二叉树的时候,需要对空节点进行判断,防止误操作。