
C语言实现数据结构
杜杜_
这个作者很懒,什么都没留下…
展开
-
关于二叉树的建立和遍历易错问题
```c #define _CRT_SECURE_NO_DEPRECATE //二叉树的建立 #include<stdio.h> #include<stdlib.h> typedef struct btree { char data; struct btree* lchild; struct btree* rchild; }btnode, *bitree; void visit(char c, int level) { printf("%c 在第 %d 层 \n", c, .原创 2021-09-12 14:18:46 · 1022 阅读 · 0 评论 -
C-数据结构之顺序栈、链式栈
11.27-学习笔记(今天终于把栈写了) 顺序栈的实现如下: //栈的实现-只允许在一端进行插入或者删除操作的线性表(后进先出) //栈顶、栈底、空栈 #include<stdio.h> #define MaxSize 10 typedef struct stack{ int data[MaxSize]; int top; }Sqstack; //创建一个栈 void creat(Sqstack *s)//参数:栈的首地址 { int e; while(1) { pri原创 2020-11-27 21:09:16 · 135 阅读 · 0 评论 -
C-数据结构之队列(顺序和链式)
11.24 学习笔记-今日打卡队列(链式和顺序表) 代码没有注重格式,只是能够实现基本的功能。 代码中很多多余的变量和书写,都是在调试过程中产生的,(本博客只是记录代码) //队列-链式存储 #include<stdio.h> #include<stdlib.h> //建立一个结点的结构体,里面存有data和next typedef struct Qnode{ int data; struct Qnode* next; }node; //链式队列的首尾指针 typedef原创 2020-11-25 17:53:00 · 126 阅读 · 0 评论 -
C-数据结构之单链表逆置
11.25-学习笔记 单链表的逆置-大概思想就是新建立一个头结点,然后让之前的结点使用头插法插入到新建立的链表中。(这个也是使用快慢指针判断回文串中前半部分逆置的思想(我感觉是这样的)) //实现单链表的逆置 //逆置单链表就是新创建一个链表,然后让原始列表的每一个结点使用头插法插入到新链表中。 #include<stdio.h> #include<stdlib.h> typedef struct node{ int data; struct node * next; }Lno原创 2020-11-25 17:45:18 · 7379 阅读 · 0 评论 -
C-数据结构之单链表实现回文串的判断
学习笔记–11.23 刚接触数据结构,实现方法简单,文中注释均为我在写代码中遇到的问题和调试过程。且在回文串判断的时候开始选择用快慢指针进行(但是由于此处思路不是很清晰,每次都会少计算一个位置导致换了一种方法)-方法简单但是时间复杂度就比较高; 后续我会再学习一下快慢指针的方法。 //数据结构之回文串的判断 //存储方式,单链表 #include<stdio.h> #include<stdlib.h> typedef struct node{ char c; struct nod原创 2020-11-23 16:38:37 · 1272 阅读 · 0 评论 -
C-数据结构之顺序表的增删改查
11.21-学习笔记 #include<stdio.h> #include<stdlib.h> #define MaxSIZE 100 #define ElemType int //定义一个顺序表 typedef struct{ ElemType data[MaxSIZE];//顺序表的元素 int length;//顺序表的长度 }seqlist,*list; //顺序表的创建 list creatlist(seqlist *L) { // printf("1.L=%d\n原创 2020-11-21 20:28:32 · 239 阅读 · 0 评论 -
C-数据结构(直接插入排序、折半排序、希尔排序)
11.21-学习笔记之直接插入排序,折半排序,希尔排序 小白水平,只记录自己的学习过程 //本文实现直接插入排序、折半插入排序、希尔排序--顺序表实现 //直接插入排序的思维就是一个未排队序列和一个已排队序列,然后设置哨兵。 #include<stdio.h> #include<stdlib.h> #define Maxsize 100 typedef struct{ int data[Maxsize]; int length; }seqlist,*list; list cre原创 2020-11-21 16:28:54 · 486 阅读 · 0 评论 -
C-单链表之相邻结点交换
11.21-本文实现的相邻结点交换- 本文注释均为我在写代码途中遇到的问题 //本文实现单链表的相邻结点交换 #include<stdio.h> #include<stdlib.h> typedef struct node{ int data; struct node* next; }Lnode,*Linklist; //使用尾插法建立单链表 Linklist creat() { Linklist L,s; Lnode* p; int e; L=(Linklist)ma原创 2020-11-21 12:17:28 · 2296 阅读 · 0 评论 -
C语言--单链表的实现(简单,有注释)
学习笔记11.21(小白水平) 每一个注释均为调试语句 实现了链表相关的操作 如有问题,请指出,谢谢! //本文实现单链表的相关功能 #include<stdio.h> #include<stdlib.h> typedef struct node{ int data; struct node* next; }Lnode,*Linklist; int init(){ //初始化单链表 Linklist L; L->next=NULL; return 0; }原创 2020-11-21 10:59:53 · 288 阅读 · 1 评论