数据结构与算法
文章平均质量分 72
数据结构与算法学习
Lu_kuan@
这个作者很懒,什么都没留下…
展开
-
链表作业分析(作业五)
1. 若有以下说明和语句,则值为6的表达式是___________。struct st1{int n;st1 *next;};st1 a[3],*p;a[0].n = 5; a[0].next = &a[1];a[1].n = 7; a[1].next = &a[2];a[2].n = 9; a[2].next = NULL;p = &a[0];A. p-...原创 2018-05-07 08:22:02 · 491 阅读 · 0 评论 -
变量与指针、数组与指针习题详解
变量与指针1.有如下语句int a=10,b=20,*p1=&a,*p2=&b;如果让两个指针变量均指向b,正确的赋值方式是 B 。A)*p1=*p2; B)p1=p2; C)p1=*p2; D)*p1=p2;2.执行以下程序后,a的值为 0 ,b的值为 7 。int main(){int a,b,k=4,m=6,*p1=&k,*p2=&...原创 2018-05-08 22:39:20 · 2358 阅读 · 1 评论 -
C语言中双向链表和双向循环链表详解
双向链表和双向循环链表和单向链表相比,多了一个前驱结点。如果他为空,那么next和prior都指向自己。而对于双循环链表,只需要最后一个元素的next指向head->next,head->next的prior指向最后一个节点即可。插入操作新节点s插入链表,s->next给p结点,s->prior给p->prior,然后,p->prior->next指向s,...转载 2018-05-21 12:01:12 · 6374 阅读 · 0 评论 -
头插法和尾插法图文并茂
#include "stdio.h" #include "stdlib.h" typedef struct List { int data; //数据域 struct List *next; //指针域 } List; void TailCreatList(List *L) //尾插法建立链表 { List *s, *r;//s用来指向新生成的节点。r始终指向...转载 2018-06-03 10:15:43 · 20497 阅读 · 2 评论 -
1230: 集合union
Description假设利用两个线性表LA和LB分别表示两个集合A和B(即:线性表中的数据元素即为集合中的成员),现要求一个新的集合A=A∪B。这就要求对线性表做如下操作:扩大线性表LA,将存在于线性表LB中而不存在于线性表LA中的数据元素插入到线性表LA中去。只要从线性表LB中依次取得每个元素,并依值在线性表LA中进行查访,若不存在,则插入之。上述操作过程可用下列算法描述之。上图算法中,在第8...原创 2018-06-03 15:58:31 · 451 阅读 · 0 评论 -
1231: 有序线性表的有序合并
Description已知线性表 LA 和 LB 中的数据元素按值非递减有序排列,现要求将 LA 和 LB 归并为一个新的线性表 LC, 且 LC 中的数据元素仍然按值非递减有序排列。例如,设LA=(3,5,8,11) ,LB=(2,6,8,9,11,15,20) 则LC=(2,3,6,6,8,8,9,11,11,15,20)算法描述如下:从上述问题要求可知,LC中的数据元素或是LA中的数据元素,...原创 2018-06-03 16:17:11 · 1441 阅读 · 0 评论 -
数据结构之链式线性表操作(C实现)
#include<stdio.h>#include<stdlib.h>#define false 0#define ok 1//定义节点的结构typedef struct node{ int data; struct node *next;}node;typedef struct node *linklist;//初始化链表,创建一个链表...原创 2018-06-07 12:17:14 · 581 阅读 · 0 评论 -
C语言:栈实现进制间转换
利用栈的后进先出性质写一个10到8进制转换的小程序,数组方式实现栈,代码如下:#include<stdio.h>#include<stdlib.h>#define stack_size 100#define stack_crement_size 10typedef int Elemtype;///////////////////声明一个栈 typedef st...原创 2018-06-09 19:33:48 · 8641 阅读 · 2 评论 -
括号匹配问题(栈的使用)
括号配对问题时间限制:3000 ms | 内存限制:65535 KB难度:3描述 现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符输出每组输入...转载 2018-06-09 20:12:53 · 511 阅读 · 0 评论 -
栈的应用之表达式求值(后缀式运算)
1、逆波兰表达式简介 假定给定一个只 包含 加、减、乘、除,和括号的算术表达式,你怎么编写程序计算出其结果。问题是:在表达式中,括号,以及括号的多层嵌套 的使用,运算符的优先级不同等因素,使得一个算术表达式在计算时,运算顺序往往因表达式的内容而定,不具规律性。 这样很难编写出统一的计算指令。 使用逆波兰算法可以轻松解决。他的核心思想是将普通的中缀表达式转换为后缀表达式。 转换为后缀表达式的...转载 2018-06-12 16:30:31 · 9799 阅读 · 1 评论 -
数据结构——线性表的顺序存储结构(C/C++语言描述)
最近复习数据结构,在读数据结构的经典作《大话数据结构》(程杰),以下是近期对于线性表的顺序存储结构的整理,后期尽量持续更新。一、顺序存储定义 线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。二、顺序存储方式1. 顺序存储的结构代码为:#include<stdio.h>#include<stdlib.h>...原创 2019-05-13 13:41:02 · 1977 阅读 · 0 评论