1:顺序表使用基址来表示和存储 int *p; p=(int *)malloc(initsize*sizeof(int)); L—>p[x]=xx; 2:链表 在于除了更改数据还要更改前后与之关联的指针域,利用头指针可以通过l->next找到第i个地址对应的结点 while(p&&j<i){ p=p->next; j++; } s=malloc..;//分配新的结点空间 p->next=s; s->next=p->next; s->data=e; 3:栈: 判空:s->base=s->top; 非空栈的栈顶指针始终指向栈顶的下一个位置; 同样是通过基址来存储和访问,不过插入和删除都必须在栈顶完成;s->top=s->base+s.stacksize; 4:链队列: 队列有头有尾,而且每个结点有数据域和指针域; 判空:ql->front=ql->rear; 插入删除操作要不仅要改变结点的指针和数据域,还要更改队头或者队尾; 5:二叉树: 每一个结点有左右指针域有数据域; 递归访问,非递归访问(层序遍历,使用栈,使用栈时要注意右孩子先入栈,为了后出栈达到从左到右的访问顺序);
时间: 2024-10-10 21:00:47