![](https://img-blog.csdnimg.cn/20210904211836954.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 66
C语言数据结构
money的大雨
路遥遥
展开
-
单链表的基本操作(C语言)——增删改查
#include <stdio.h>#include <stdlib.h>struct node{ int data; struct node *next;};void printLink(struct node *head){ struct node *temp = head; while(temp != NULL){ printf("%d\n",temp->data); temp = temp->next; } putchar('\n原创 2021-06-05 14:26:45 · 554 阅读 · 0 评论 -
链表反转的C语言实现(迭代法和递归法)—— 图文详解
实现功能:原链表:head->0->1->2->3->4->NULL反转后:head->4->3->2->1->0->NULL1.迭代法1.得到链表后,先定义两个指针。current指向头结点;prev指向NULL。2.执行操作:定义临时指针next储存当前节点指向的下一个节点的地址。struct node* next = current->next;把prev的值赋给当前节点的下一个地址值(头节点原创 2021-06-16 02:41:52 · 2293 阅读 · 2 评论 -
双向链表的C语言实现
双向链表:one: 用结构体定义一个节点:two: 建立一个双向链表:three:双向链表的遍历:four:删除第n个节点1️⃣ 用结构体定义一个节点❤️ 双向链表的结构体:struct node{ int data; struct node *prev;//指向上一个节点 struct node *next;//指向下一个节点};2️⃣ 建立一个双向链表双向链表结构类似单链表的头插法,我们创建一个节点插在链表头节点前面成为新的头结点:struct node *inser原创 2021-08-14 23:50:02 · 156 阅读 · 2 评论 -
⭐️栈的基本操作(C语言数组和链表分别实现)✨✨✨
栈stack概述1.栈的概念2.栈的基本操作3.用数组实现栈的基本操作4.用链表实现栈的基本操作概述1.栈的概念栈(stack) 是限定仅在表尾进行插入或者删除的线性表。对于栈来说,表尾端称为栈顶(top),表头端称为栈低(bottom)。不含元素的空表称为空栈。因为栈限定在表尾进行插入或者删除,所以栈又被称为后进先出的线性表(LIFO)2.栈的基本操作判空:判断栈是否为空判满:判断栈是否装满进栈push:向栈顶压入一个元素退栈pop:从栈顶弹出一个元素3.用数组实现栈的基本原创 2021-08-15 21:20:23 · 434 阅读 · 0 评论 -
栈的应用:字符串的括号匹配问题(C语言)
括号匹配问题描述解决方法代码终端显示问题描述输入一字符串,检查字符串中 { }、[ ]、( ) 三种括号是否成对出现。不同括号间不能交叉出现且左右括号顺序不能颠倒,如 ) (、{ ( } )等。匹配示例:{ ( ) } ,{ [ ( ) ] }等解决方法利用栈的特性,发现左括号就入栈,然后检索到右括号与栈顶的左括号比对,如果为同一种括号则栈顶括号出栈;如果不是同一种括号(交叉)或者栈为空(只有右括号)则匹配失败。最后若栈空则说明括号匹配成功代码#include <stdio.原创 2021-08-16 18:25:40 · 2881 阅读 · 2 评论 -
队列的基本操作
队列Queue概念队列的基本操作数组实现队列概念队列也是一种线性表,是一种先进先出的线性结构(FIFO)。队列只允许在表的一端进行插入(入队)、删除(出队)操作。允许插入的一端称为队尾,允许删除的一端称为队头。队列的基本操作入队EnterQueue:在队列的队尾插入一个元素出队DeleteQueue:将队列的队头元素出队判空IsEmpty:判断队列是否有元素存在判满IsFull:判断队列是否已满front:返回队头元素数组实现队列...原创 2021-08-20 21:49:46 · 546 阅读 · 0 评论