数据结构三要素略知一二

一.数据结构三要素:

  1,逻辑结构:线性和非线性

  2,存储结构:顺序,链式,索引,散列

  3,数据运算:算法

ps:具体时间复杂度与问题的规模和初始条件相关,分最佳和最大

二.线性表:

1.无头结点:

  头插法:s->data=ch;s->next=head;head=s;

  尾插法:rear->next=s;rear=s; (两个指针头尾指针)

  删除:q=p->next;p->next=q->next;free(q);

2.有头结点:有了头结点后,对在第一个元素结点前插入结点和删除第一个结点,其操作与对其它结点的操作统一了。

        头插法:s->data=ch;s->next=head->next;head->next=s;

  尾插法:rear->next=s;rear=s; (两个指针头尾指针)

  删除:q=p->next;p->next=q->next;free(q);

三.循环链表:

ps:单循环链表中设置尾指针比设置头指针更好

双循环链表:

  前插:s->data=ch;s->prior=p->prior;s->next=p;p->prior->next=s;p->prior=s;

  删除:p->prior->next=p->next;p->next->prior=p->prior;free(p);

四.栈:

顺序栈:(栈顶插入和删除,栈底为0)

  初始栈:s->top=-1;

  进栈:s->top++;S->data[s->top]=x;

  出栈:x=S[s->top];s->top--;

五.链栈:链栈是没有附加头结点的运算受限的单链表。栈顶指针就是链表的头指针

  进栈:p->data=x;p->next=S->top;S->top=p;(先进后出)S的next指向前面

  出栈:S->top=p->next;free(p);

入队:p->data=x;Q->rear->next=p;Q->rear=p;

出队:p=Q->front;Q->front=p->next;free(p);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值