数据结构
高飞的潴
这个作者很懒,什么都没留下…
展开
-
多项式的加法运算(等待修改)
#include #include int a[100]; int main() { int i,n,x,z,k; memset(a,0,sizeof(a)); printf("请输入第一个多项式的项数:"); scanf("%d",&n); for(i=1;i { printf("请输入f1第%d项的指数:",i); scanf("%d",&z); printf("原创 2013-09-10 18:44:21 · 551 阅读 · 0 评论 -
使用Dijkstra迪杰斯特拉算法获得单源最短路径
在连通图当中 ,常常出现求出某一个点到其他各个点的最短路径问题 Dijkstra迪杰斯特拉算法就是用来解决这种问题的一种方法 简单的来说,Dijkstra算法就是不断的去使用贪心策略来解决问题 以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率并不高。 现有如下的例题: /** * 1.sure原创 2015-04-17 17:21:58 · 1345 阅读 · 0 评论 -
静态链表的创建以及基本操作
#include #include #define Max 100 typedef int ElemType; /*定义每个节点的数据信息*/ typedef struct Node { ElemType data;//节点中存放的抽象数据 int next;//记录下一个节点的位置(位置由下标唯一决定)这里的next就是下个元素在结构体数组中的下标 }SLNode; /*静态链表的定原创 2013-09-26 23:28:52 · 5104 阅读 · 0 评论 -
循环双向链表的创建方法 最简单的循环双向链表
首先讲循环链表,简单来说就是让链表首尾相连,形成一个环,因为一般的链表都是单向的,任意给出的一个节点是不能访问前面的链节,这就导致了单向链表的局限性,循环链表从一定程度上来说就解决了这一问题,通过表头指针的移动,因为环的特性,可以访问完整个链表; 但是我们不禁会想,如果只是为了访问已知链节的前一个节点,通过循环虽然达到了访问的目的,但是走遍整个链表岂不是太花费时间了么,就好比北京——天津——上海原创 2013-06-06 23:44:10 · 4640 阅读 · 0 评论 -
动态链表的删除 插入 查找操作
#include #include struct node { int data; struct node *next; }; //结构体的定义 void search(struct node *head,int i) { int j; struct node *p=head; for(j=0;j {p=p->next;} printf("您所查找的第%d个数据为:%原创 2013-06-05 23:42:29 · 2663 阅读 · 2 评论 -
动态链表的头插法
#include using namespace std; struct node { int data; struct node *next; }; void main() { int i,num; struct node *p,*q; p=q=(struct node *)malloc(sizeof(struct node)); p=NULL; for(i=0;i原创 2013-06-04 21:46:49 · 570 阅读 · 0 评论 -
动态链表的建立—尾插法
今天尝试了简单动态链表的建立 不幸的是失败了 目前还没有找出错在哪儿 明天一定要搞清楚错误的原因 到时在对本文进行修改 #include using namespace std; struct node { int num; struct node *next; }; void main() { int i,num; struct node *head;原创 2013-06-02 22:46:09 · 1573 阅读 · 0 评论