数据结构
立里∑
这个作者很懒,什么都没留下…
展开
-
二叉树
1.递归进行二叉树的建立、遍历://#include<iostream>//using namespace std;#include<stdio.h>#include<stdlib.h>#define maxsize 100typedef char datatype;typedef struct BNode{ datatype data; struct BNode *lchild; struct BNode *rchild;}BNode;int原创 2020-08-15 21:13:06 · 153 阅读 · 0 评论 -
广义表
基本操作:#include<stdio.h>typedef struct lnode{ int tag; //判断是原子节点还是子表结点 union { elemtype data; //存放原子结点值 struct lnode *sublist;//指向子表的指针 } val; sttruct lnode *link; } GLNode; void fun1(GLNode *g) { GLNode *g1=g->val.sublist; w原创 2020-08-07 16:09:05 · 164 阅读 · 0 评论 -
一元多项式相加(单链表的应用)
#include<stdio.h>#include<stdlib.h> typedef struct Lnode{ float coef;//系数 int expn;//指数 struct Lnode *next; } Lnode,*Linknode; void init(Linknode &L) //初始化L { L=(Linknode)malloc(sizeof(Linknode)); L->next=NULL; } void原创 2020-08-02 15:22:05 · 1099 阅读 · 1 评论 -
约瑟夫环
用单循环链表解决约瑟夫问题用单链表解决时注意3中特殊情况:(1)【count==m/count!=m时】p指针恰好指向L头结点时(2)当pre指针恰好指向L头结点时(3)当删除了报m的元素后,pre->next为头指针本质问题:应保证pre,p指针指向的结点应有具体数值不是头结点#include<stdio.h>#include<stdlib.h> typedef struct Lnode{ int data; Lnode *next; } L.原创 2020-08-01 16:21:31 · 142 阅读 · 0 评论 -
迷宫问题(不太熟)
1.用栈解决/*用栈求解迷宫问题*/#include<stdio.h>#define maxsize 100 typedef struct{ int i; //行号 int j; //列号 int di; //方位 }BOX;typedef struct{ BOX data[maxsize]; int top; //栈顶 } stType; int mg[10][10]= {{1,1,1,1,1,1,1,1,1,1}, {1,0,0,1,0,0,0原创 2020-07-30 16:01:44 · 150 阅读 · 0 评论 -
栈的应用
括号匹配(使用了顺序栈)注:C语言中输出一个字符是 printf("m:%c\n",m); 输出一个字符串是printf("L.data:%s\n",L.data);思路:三种异常情况: (1)数组中的括号与出栈的括号不匹配 (2)数组中已无元素但栈中还有元素; (3)栈中已无元素但数组中还有元素;思路流程图:#include<stdio.h>#include<stdlib.h>#define maxsi.原创 2020-07-28 17:56:35 · 97 阅读 · 0 评论 -
队列
顺序队列注意:(1)进队操作要先判断栈是否满(由于顺序队列不好判断 −>->−>循环队列)(2) 先将数据放入尾指针所指的数组,再尾指针++。L.data[L.rear]=e ; L.rear++; void init(squeue &L) //初始化 { L.front=L.rear=0; } bool enter(squeue &L,int e) { if (队满) return false; L.data[L.r.原创 2020-07-25 16:09:58 · 186 阅读 · 0 评论 -
C语言中base operand of ‘->‘is not a pointer的错误
如果你使用的变量x是个结构体,应该用.访问其成员,如:x.num如果你使用的变量x是个结构体指针,应该用->访问其成员,如:x->num如果当前变量x是个结构体而你却使用了x->num的方式访问,就属会出现上面的报错。"."一般情况下读作"的”,结构体a的b。“->”一般读作"指向的结构体的",a指向的结构体的b...原创 2020-07-25 15:48:43 · 10592 阅读 · 0 评论 -
栈(包含顺序栈,链栈,共享栈)--2020/7/23
顺序栈基本操作:顺序栈栈满指 s.top+1==maxsizes.top+1==maxsizes.top+1==maxsize#include<stdio.h>#include<stdlib.h>#define Maxsize 50typedef struct{ int data[Maxsize]; int top; } Sqstack; void init(Sqstack &s) //初始化 { s.top=-1; } boo..原创 2020-07-23 16:48:43 · 129 阅读 · 0 评论 -
第二章线性表王道练习题统考题
21.(p43)思路:定义p,q指针,初始时均指向头结点的下一个结点,令p结点向下移动当p节点移动到第k个节点时,q指针开始与p指针一起移动。这样当p指针移动到最后一个是q指针指向倒数第k个节点 int find_font(DLinklist L) { int k=1,count=0; printf("请输入k:\n"); scanf("%d",&k); DLinklist p=L->next,q=L->next; while(p!=NULL) {原创 2020-07-22 18:27:02 · 173 阅读 · 0 评论 -
第二章王道数据结构练习题12-14题--7/21
#include<stdio.h>#include<stdlib.h>typedef struct DNode{ int data; struct DNode *next; } DNode,*DLinklist; void init(DLinklist &L) //初始化链表 利用前插法 { int x=0; L=(DLinklist)malloc(sizeof(DNode)); L->next=NULL; printf("请输入原创 2020-07-21 17:15:15 · 222 阅读 · 0 评论 -
王道第二章综合应用题2-8题 ---------7/20
//第二章第二题 //第二章第二题 #include<stdio.h>#include<stdlib.h>typedef struct DNode{ int data; struct DNode *next; } DNode,*DLinklist; void init(DLinklist &L) //初始化链表 利用前插法 { int x=0; L=(DLinklist)malloc(sizeof(DNode)); L->next原创 2020-07-20 16:48:16 · 171 阅读 · 0 评论 -
循环双链表(王道)-----7/15
#include<stdio.h>#include<stdlib.h> typedef struct XNode{ int data; struct XNode *next,*perior;}XNode,*XLinklist;void Init_head(XNode *&L) //头插法创建链表 { L=(XLinklist)malloc(sizeof(XNode)); L->next=NULL; L->perior=NULL; i原创 2020-07-16 18:48:03 · 120 阅读 · 0 评论 -
双链表(王道讲解部分)----7/15
#include<stdio.h>#include<stdlib.h>typedef struct DNode{ int data; struct DNode *prior,*next; } DNode,*DLinklist; void Init(DLinklist &L) { L=(DLinklist)malloc(sizeof(DNode)); L->next=NULL; L->prior=NULL; } void insert原创 2020-07-15 19:25:50 · 150 阅读 · 0 评论