当前位置:文档之家› (分销管理)2020年深度分销

(分销管理)2020年深度分销

(分销管理)2020年深度分销
(分销管理)2020年深度分销

分销渠道管理案例分析

分销渠道管理案例分析 ——宝洁公司的分销渠道分析

宝洁公司的分销渠道分析 一、公司简介 宝洁公司创于1837年,是全球最大的日用消费品公司之一,在日用化学品市场上知名度相当高。2003-2004财政年度,公司全年销售额为514亿美元。在《财富》杂志最新评选出的全球500家最大工业/服务业企业中,排名第86位。宝洁公司全球雇员近10万,在全球80多个国家设有工厂及分公司,所经营的300多个品牌的产品畅销160多个国家和地区,其中包括织物及家居护理、美发美容、婴儿及家庭护理、健康护理、食品及饮料等。 1988年,保洁公司在广州成立了在中国的第一家合资企业:广州宝洁有限公司,从此开始了宝洁投资中国市场的历程。为了积极参与中国市场经济的建设与发展,宝洁公司已在广州、北京、上海、成都、天津等地设有十几家合资、独资企业。 全球最大日用品生产商美国宝洁公司在最新财报显示,在2012财年第一财季的经营中,该公司的净利润出现了 1.9%的小幅下滑,而同期的营业收入则实现了8.9%的同比增长。在截至2011年9月30日的三个月内,该公司的净利润下滑至了30.2亿美元,而2010年同期的净利润为30.8亿美元。该公司的营业收入达到了219.2亿美元,这一数字较2010年同期的201.2亿美元实现小幅增长。另外,还估算了宝洁公司2012年的业绩预期: 二、战略渠道分析 1、品牌战略 (一)多品牌战略 单一品牌延伸策略便于企业形象的统一,资金、技术的集中,减少营销成本,易于被顾客接受,但单一品牌不利于产品的延伸和扩大,且单一品牌一荣俱荣,

一损俱损。而多品牌虽营运成本高、风险大,但灵活,也利于市场细分。宝洁公司名称P&G宝洁没有成为任何一种产品和商标,而根据市场细分洗发、护肤、口腔等几大类,各以品牌为中心运作。如在中国市场上,香皂用的是“舒肤佳”,牙膏用的是“佳洁仕”,卫生贴用的是“护舒宝”,洗发精就有“飘柔”、“潘婷”、“海飞丝”3种品牌,洗衣粉有“汰渍”、“洗好”、“欧喜朵”、“波特”、“世纪”等9种品牌。要问世界上哪个公司的牌子最多,恐怕非宝洁公司莫属。多品牌的频频出击,使公司在顾客心目中树立起实力雄厚的形象。 宝洁公司经营的多种品牌策略不是把一种产品简单地贴上几种商标,而是追求同类产品不同品牌之间的差异,包括功能、包装、宣传等诸方面,从而形成每个品牌的鲜明个性。这样,每个品牌有自己的发展空间,市场就不会重叠。不同的顾客希望从产品中获得不同的利益组合,有些人认为洗涤和漂洗能力最重要,有些人认为使织物柔软最重要,还有人希望洗涤和漂洗能力最重要,有人希望洗衣粉具有气味芬芳、碱性温和的特征。于是宝洁就利用洗衣粉的9个细分市场,设计了9种不同的品牌。利用一品多牌从功能、价格、包装等各方面划分出多个市场,满足不同层次、不同需要的各类顾客的需求,从而培养消费者对本企业某个品牌的偏好,提高其忠诚度。 (二)准确命名并提升品牌价值 宝洁公司对品牌的命名,非常讲究,他们深谙一个贴切而绝妙的品牌命名,能大大地减小产品被消费者认知的阻力,能激发顾客美好的联想,增进顾客对产品的亲和力和信赖感,并可大大节省产品推广的费用。宝洁公司通过对英文名字的精确选择或组合来给产品品牌命名,使中文名字与英文能在意义和发音上很协调贴切地配合。准确地体现了产品的特点和要塑造的品牌形象以及消费定位,提升了品牌的形象。 宝洁公司提升品牌价值也主要体现在营销过程中,它在营销过程中打造了一系列的概念。比如在洗发、护发类产品中,充分使用营销过程中的知识营销概念,使每个品牌都赋予一定的知识,打造一个概念,从而给每个品牌赋予个性。例如,“海飞丝”的个性在于去头屑;“潘婷”的个性在于对头发的营养保健;而“飘柔”的个性则是使头发光滑柔顺;“沙宣”则定位于调节水分与营养;“润妍”定位于更黑、更有生命力。

图的深度广度优先遍历操作代码

一、实验目的 1.掌握图的各种存储结构,特别要熟练掌握邻接矩阵和邻接表存储结构; 2.遍历是图各种应用的算法的基础,要熟练掌握图的深度优先遍历和宽度优先遍历算法,复习栈和队列的应用; 3.掌握图的各种应用的算法:图的连通性、连通分量和最小生成树、拓扑排序、关键路径。 二、实验内容 实验内容1**图的遍历 [问题描述] 许多涉及图上操作的算法都是以图的遍历为基础的。写一个程序,演示在连通无向图上遍历全部顶点。 [基本要求] 建立图的邻接表的存储结构,实现无向图的深度优先遍历和广度优先遍历。以用户指定的顶点为起点,分别输出每种遍历下的顶点访问序列。 [实现提示] 设图的顶点不超过30个,每个顶点用一个编号表示(如果一个图有N个顶点,则它们的编号分别为1,2,…,N)。通过输入图的全部边输入一个图,每条边是两个顶点编号对,可以对边依附顶点编号的输入顺序作出限制(例如从小到大)。 [编程思路] 首先图的创建,采用邻接表建立,逆向插入到单链表中,特别注意无向是对称插入结点,且要把输入的字符在顶点数组中定位(LocateVex(Graph G,char *name),以便后来的遍历操作,深度遍历算法采用递归调用,其中最主要的是NextAdjVex(Graph G, int v, int w);FirstAdjVex ()函数的书写,依次递归下去,广度遍历用队列的辅助。 [程序代码] 头文件: #include #include #define MAX_VERTEX_NUM 30 #define MAX_QUEUE_NUMBER 30 #define OK 1 #define ERROR 0 #define INFEASIBLE -1

连通图深度优先遍历

#include #include #define MAXLEN 20 typedef struct node3 { int adjvex; struct node3 *next; }ARCNODE; typedef struct { char data; ARCNODE *firstarc; int id; } VEXNODE; typedef struct { VEXNODE vertices[MAXLEN]; int vexnum, arcnum; int kind; }ALGRAPH; int visited[MAXLEN]; ALGRAPH creat_graph() { ARCNODE *p; int i, s, d; ALGRAPH g; printf("\n\n输入顶点数和边数(用逗号隔开) : "); scanf("%d,%d", &s, &d);fflush(stdin); g.vexnum = s; /*存放顶点数在g.vexnum 中 */ g.arcnum = d; /*存放边点数在g.arcnum 中*/ printf("\n\n"); for(i = 0; i < g.vexnum; i++) /*输入顶点的值*/ {printf("输入顶点 %d 的值 : ", i + 1); scanf("%c", &g.vertices[i].data); fflush(stdin); g.vertices[i].firstarc = NULL;} printf("\n"); for(i = 0; i < g.arcnum; i++) {printf("输入第 %d 条边的起始顶点和终止顶点下标(用逗号隔开): ", i+1);

图的深度优先遍历算法课程设计报告

合肥学院 计算机科学与技术系 课程设计报告 2013~2014学年第二学期 课程数据结构与算法 课程设计名称图的深度优先遍历算法的实现 学生姓名陈琳 学号1204091022 专业班级软件工程 指导教师何立新 2014 年9 月 一:问题分析和任务定义 涉及到数据结构遍会涉及到对应存储方法的遍历问题。本次程序采用邻接表的存储方法,并且以深度优先实现遍历的过程得到其遍历序列。

深度优先遍历图的方法是,从图中某顶点v 出发: (1)访问顶点v ; (2)依次从v 的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和v 有路径相通的顶点都被访问; (3)若此时图中尚有顶点未被访问,则从一个未被访问的顶点出发,重新进行深度优先遍历,直到图中所有顶点均被访问过为止。 二:数据结构的选择和概要设计 设计流程如图: 图1 设计流程 利用一维数组创建邻接表,同时还需要一个一维数组来存储顶点信息。之后利用创建的邻接表来创建图,最后用深度优先的方法来实现遍历。 图 2 原始图 1.从0开始,首先找到0的关联顶点3 2.由3出发,找到1;由1出发,没有关联的顶点。 3.回到3,从3出发,找到2;由2出发,没有关联的顶点。 4.回到4,出4出发,找到1,因为1已经被访问过了,所以不访问。

所以最后顺序是0,3,1,2,4 三:详细设计和编码 1.创建邻接表和图 void CreateALGraph (ALGraph* G) //建立邻接表函数. { int i,j,k,s; char y; EdgeNode* p; //工作指针. printf("请输入图的顶点数n与边数e(以逗号做分隔符):\n"); scanf("%d,%d",&(G->n),&(G->e)); scanf("%c",&y); //用y来接收回车符. for(s=0;sn;s++) { printf("请输入下标为%d的顶点的元素:\n",s); scanf("%c",&(G->adjlist[s].vertex)); scanf("%c",&y); //用y来接收回车符.当后面要输入的是和单个字符有关的数据时候要存贮回车符,以免回车符被误接收。 G->adjlist[s].firstedge=NULL; } printf("请分别输入该图的%d条弧\n",G->e); for(k=0;ke;k++) { printf("请输入第%d条弧的起点和终点(起点下标,终点下标):\n",(k+1)); scanf("%d,%d",&i,&j); p=(EdgeNode*)malloc(sizeof(EdgeNode)); p->adjvex=j; p->next=G->adjlist[i].firstedge; G->adjlist[i].firstedge=p; } } 2.深度优先遍历 void DFS(ALGraph* G,int v) //深度优先遍历 { EdgeNode* p;

(完整版)体验式营销案例

新疆A企业成立于2003年9月,位于新疆首府乌鲁木齐市,在其成立之初,一无品牌,二无市场,且在产品上市前,乌鲁木齐市场已有三个品牌的产品占据乌鲁木齐市场95%的市场份额,在经过2004年一年的市场开发、产品促销、品牌宣传推广以及新品开发上市,到2005年5月,该企业A产品在整个新疆市场产品日销量已达70吨,市场占有率达27 7%,跃升为新疆乳品企业三甲之列,尤其在其核心城市乌鲁木齐市场其产品销售量达50多吨,市场占有率近40%,成为乌鲁木齐市场销售量最大的乳品企业之一,但该企业在经历一年多的高速成长之后,面临新的发展问题。 1、市场销量虽达到了一定水平,但长时间处于停滞的平台期,怎样突破销售瓶颈,进一步提升销量 2、品牌的建设和品牌提升的问题。 3、产品宣传和推广上传播界限突破的问题。 针对上述三个问题,企业品牌推广小组首先,从该企业自成立之初的发展历程进行深入的了解,寻找原因,同时,对新疆乳业的现状和消费者的关注度状况进行了分析并作出SWTO分析: 优势: 1、专业的营销团队,进行深度分销的营销模式和一年的市场运作,拥有营销优势和。品牌、销量基础 2、六个千头牛奶场为其提供了可靠的奶源保障,形成了其它企业难以比拟的优势。 3、克隆牛技术独步新疆和该企业的研发能力,使其拥有技术优势。 4、先进的生产技术设备和完善的品控体系使其拥有安全优势劣势: 1、产品销售过度依赖促销实现,销售不稳定。 2、企业进入市场较短,缺乏市场经验而且由于时间短品牌基础较弱,虽有知名度却缺乏美誉度。 3、产品定位模糊不清,企业的核心和竞争优势尚未传播开来。 4、产品口味与目前市场流行的香浓口味相比欠佳。 机会: 1、消费者对牛奶产品的消费上认识度较低、品牌忠诚度较弱,消费的随机性较强。 2、企业产品线丰富,便于组合,同时企业营销能力和思维转换较快。 3、消费者对牛奶产品安全的消费需求。

图的深度优先遍历实验报告

一.实验目的 熟悉图的存储结构,掌握用单链表存储数据元素信息和数据元素之间的关系的信息的方法,并能运用图的深度优先搜索遍历一个图,对其输出。 二.实验原理 深度优先搜索遍历是树的先根遍历的推广。假设初始状态时图中所有顶点未曾访问,则深度优先搜索可从图中某个顶点v出发,访问此顶点,然后依次从v的未被访问的邻接点出发深度优先遍历图,直至图中所有与v有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未曾访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。 图的邻接表的存储表示: #define MAX_VERTEX_NUM 20 #define MAXNAME 10 typedef char VertexType[MAXNAME]; typedef struct ArcNode{ int adjvex; struct ArcNode *nextarc; }ArcNode; typedef struct VNode{ VertexType data; ArcNode *firstarc;

}VNode,AdjList[MAX_VERTEX_NUM]; typedef struct{ AdjList vertices; int vexnum,arcnum; int kind; }ALGraph; 三.实验内容 编写LocateVex函数,Create函数,print函数,main函数,输入要构造的图的相关信息,得到其邻接表并输出显示。 四。实验步骤 1)结构体定义,预定义,全局变量定义。 #include"stdio.h" #include"stdlib.h" #include"string.h" #define FALSE 0 #define TRUE 1 #define MAX 20 typedef int Boolean; #define MAX_VERTEX_NUM 20

图的深度遍历

#include #include #define n 4 //图的顶点数 #define e 5 //图的边数 typedef struct node { int adjvex; struct node *next; } edgenode;//边表节点 typedef struct { char vertex; edgenode *link; }vexnode;//顶点表节点 vexnode ga[n]; int visited[n]; void Creatadjlist(vexnode ga[])//建立无向图的邻接表{ int i,j,k; edgenode *s; printf("请输入各个顶点:"); for(i=0;iadjvex=j; s->next=ga[i].link; ga[i].link=s; s=malloc(sizeof(edgenode)); s->adjvex=i; s->next=ga[j].link; ga[j].link=s; } } void Dfsl(int i)//邻接表的深度遍历 {

edgenode *p; printf("node:%c\n",ga[i].vertex); visited[i]=1; p=ga[i].link; while(p!=NULL) { if(!visited[p->adjvex]) { Dfsl(p->adjvex); } p=p->next; } } void main() { int i; Creatadjlist( ga); printf("请输入需要遍历的顶点:\n"); scanf("%d",&i); Dfsl(i); }

邻接矩阵表示图深度广度优先遍历

*问题描述: 建立图的存储结构(图的类型可以是有向图、无向图、有向网、无向网,学生可以任选两种类型),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。 1、邻接矩阵表示法: 设G=(V,E)是一个图,其中V={V1,V2,V3…,Vn}。G的邻接矩阵是一个他有下述性质的n阶方阵: 1,若(Vi,Vj)∈E 或∈E; A[i,j]={ 0,反之 图5-2中有向图G1和无向图G2的邻接矩阵分别为M1和M2: M1=┌0 1 0 1 ┐ │ 1 0 1 0 │ │ 1 0 0 1 │ └0 0 0 0 ┘ M2=┌0 1 1 1 ┐ │ 1 0 1 0 │ │ 1 1 0 1 │ └ 1 0 1 0 ┘ 注意无向图的邻接是一个对称矩阵,例如M2。 用邻接矩阵表示法来表示一个具有n个顶点的图时,除了用邻接矩阵中的n*n个元素存储顶点间相邻关系外,往往还需要另设一个向量存储n个顶点的信息。因此其类型定义如下: VertexType vertex[MAX_VERTEX_NUM]; // 顶点向量 AdjMatrix arcs; // 邻接矩阵 int vexnum, arcnum; // 图的当前顶点数和弧(边)数 GraphKind kind; // 图的种类标志

若图中每个顶点只含一个编号i(1≤i≤vnum),则只需一个二维数组表示图的邻接矩阵。此时存储结构可简单说明如下: type adjmatrix=array[1..vnum,1..vnum]of adj; 利用邻接矩阵很容易判定任意两个顶点之间是否有边(或弧)相联,并容易求得各个顶点的度。 对于无向图,顶点Vi的度是邻接矩阵中第i行元素之和,即 n n D(Vi)=∑A[i,j](或∑A[i,j]) j=1 i=1 对于有向图,顶点Vi的出度OD(Vi)为邻接矩阵第i行元素之和,顶点Vi 的入度ID(Vi)为第i列元素之和。即 n n OD(Vi)=∑A[i,j],OD(Vi)=∑A[j,i]) j=1j=1 用邻接矩阵也可以表示带权图,只要令 Wij, 若或(Vi,Vj) A[i,j]={ ∞, 否则。 其中Wij为或(Vi,Vj)上的权值。相应地,网的邻接矩阵表示的类型定义应作如下的修改:adj:weightype ; {weightype为权类型} 图5-6列出一个网和它的邻接矩阵。 ┌∞31∞∞┐ │∞∞51∞│ │∞∞∞∞∞│ │∞∞6∞∞│ └∞322∞┘ (a)网(b)邻接矩阵 图5-6 网及其邻接矩阵 对无向图或无向网络,由于其邻接矩阵是对称的,故可采用压缩存贮的方法,

C语言版图的深度和广度优先遍历源代码

表示的图: #include"" #include"" #define MaxVertexNum 50 ertex=a; irstedge=NULL; irstedge; G->adjlist[i].firstedge=s; irstedge; G->adjlist[j].firstedge=s; ertex); irstedge; ertex); irstedge; ertex); //访问Vj visited[p->adjvex]=TRUE; r=r+1; cq[r]=p->adjvex; //访问过的Vj入队 } p=p->next; //找Vi的下一个邻接点 } }//endwhile } //==========主函数=========== void main() { //int i;

ALGraph *G; G=(ALGraph *)malloc(sizeof(ALGraph)); CreatALGraph(G); printf("Print Graph DFS: "); DFS(G); printf("\n"); printf("Print Graph BFS: "); BFS(G,3); printf("\n"); } 表示的图:

#include"" #include"" #define MaxVertexNum 100 //定义最大顶点数 typedef struct{ char vexs[MaxVertexNum]; //顶点表 int edges[MaxVertexNum][MaxVertexNum]; //邻接,可看作边表int n,e; //图中的顶点数n和边数e }MGraph; //用邻接矩阵表示的图的类型 //=========建立邻接矩阵======= void CreatMGraph(MGraph *G) { int i,j,k; char a; printf("Input VertexNum(n) and EdgesNum(e): "); scanf("%d,%d",&G->n,&G->e); //输入顶点数和边数 scanf("%c",&a); printf("Input Vertex string:");

图的深度优先遍历和广度优先遍历

华北水利水电学院数据结构实验报告 20 10 ~20 11 学年第一学期2008级计算机专业 班级:107学号:200810702姓名:王文波 实验四图的应用 一、实验目的: 1.掌握图的存储结构及其构造方法 2.掌握图的两种遍历算法及其执行过程 二、实验内容: 以邻接矩阵或邻接表为存储结构,以用户指定的顶点为起始点,实现无向连通图的深度优先及广度优先搜索遍历,并输出遍历的结点序列。 提示:首先,根据用户输入的顶点总数和边数,构造无向图,然后以用户输入的顶点为起始点,进行深度优先和广度优先遍历,并输出遍历的结果。 三、实验要求: 1.各班学号为单号的同学采用邻接矩阵实现,学号为双号的同学采用邻接表实现。 2.C/ C++完成算法设计和程序设计并上机调试通过。 3.撰写实验报告,提供实验结果和数据。 4.写出算法设计小结和心得。 四、程序源代码: #include #define MaxVerNum 50 struct edgenode { int endver; int inform; edgenode* edgenext; }; struct vexnode { char vertex; edgenode* edgelink; }; struct Graph { vexnode adjlists[MaxVerNum]; int vexnum; int arcnum; }; //队列的定义及相关函数的实现 struct QueueNode

{ int nData; QueueNode* next; }; struct QueueList { QueueNode* front; QueueNode* rear; }; void EnQueue(QueueList* Q,int e) { QueueNode *q=new QueueNode; q->nData=e; q->next=NULL; if(Q==NULL) return; if(Q->rear==NULL) Q->front=Q->rear=q; else { Q->rear->next=q; Q->rear=Q->rear->next; } } void DeQueue(QueueList* Q,int* e) { if (Q==NULL) return; if (Q->front==Q->rear) { *e=Q->front->nData; Q->front=Q->rear=NULL; } else { *e=Q->front->nData; Q->front=Q->front->next; } } //创建图 void CreatAdjList(Graph* G) { int i,j,k; edgenode* p1; edgenode* p2;

采用邻接矩阵完成无向图的“建立、深度遍历、广度遍历”操作

/* 采用邻接矩阵完成无向图的“建立、深度遍历、广度遍历”操作 */ #include "stdio.h" #include "string.h" #define TRUE 1 #define FALSE 0 #define OVERFLOW -2 #define OK 1 #define ERROR 0 typedef int Status; #define INFINITY INT_MAX /*最大值“无穷”*/ #define MAX_VERTEX_NUM 20 /*最大顶点个数*/ typedef int Boolean; typedef char VertexType[20]; typedef int VRType; /**************以下为队列的操作************/ /****队列的类型定义****/ typedef int QElemType; typedef struct QNode {QElemType data; struct QNode *next; } QNode, *QueuePtr; typedef struct { QueuePtr front; QueuePtr rear; } LinkQueue; /****初始化队列****/ Status InitQueue(LinkQueue *Q) { (*Q).front=(*Q).rear=(QueuePtr)malloc(sizeof(QNode)); if (!(*Q).front) exit(OVERFLOW); (*Q).front->next=NULL; return OK; } /****判断队列是否为空****/ Status QueueEmpty (LinkQueue Q) { if (Q.front==Q.rear) return TRUE; else

《分销渠道管理》案例分析参考

《分销渠道管理》案例分析参考 说明: 案例分析是一件仁者见仁、智者见智的事情,没有标准答案可言。每一章每一节的案例,都是为了进一步说明和证实该章该节的理论而选取,我认为案例只是作为“绿叶”以映衬理论“红花”的。这里的“分析提示”只是编者的一个思路,供您参考! 在此特别感谢您开设“渠道”课程,感谢您选用该教材,有什么意见建议可通过出版社或与我本人联系,以便吸纳您的高见,在下一期修订的时候做的更好! 祝您身体健康、工作顺利! 郑锐洪 E-mail:ruihong2003@https://www.doczj.com/doc/e016349524.html, 单元一:认识分销渠道 轩尼诗入川收购文君酒意在渠道 分析提示: 洋酒企业收购中国白酒企业,表面看来没什么关系,透过现象分析其背后的根本目的,即拓展和控制渠道网络。因为洋酒在中国原来主要在一些特殊通道销售,如酒吧、酒店等,存在渠道狭窄的局限,要想进一步扩展生意,通过并购获得渠道是一种可行的方式。这个案例也说明了渠道的价值、意义以及渠道资源的稀缺性。 山西煤老板10亿建全国最大酒业B2C 分析提示: 酒类产品因其产品易碎特征,网络购买还是一个新鲜事儿,本案例希望建立B2C酒类直销平台,将采取电子商务与物流配送的方式进行营销,是一种创新性的渠道尝试。 中国汽车渠道的时代变迁 分析提示: 案例总结了国内汽车市场四种流通渠道模式:一是4S店;二是大卖场;三是汽车交易市场;四是全国性连锁店。未来汽车企业究竟采用哪类渠道,得根据企业的规模、实力、品牌影响力等因素决定。像吉利和奇瑞等中小品牌,未来重心应该放在中小城市,主要还得倚重经销商分销。 康师傅的“通路精耕” 分析提示: 在我国快速消费品市场上,康师傅是“深度分销”的创立者和最先施行者,康师傅的成功显示出分销渠道的价值,也显示出“深度分销”的力量。 格兰仕“立体化分销”提高运营效率 分析提示: 格兰仕“立体化分销”,主要讲的是格兰仕实行销售渠道的扁平化管理,实行有效的分销渠道组合(代理商模式+强势终端合作模式)以实现最有效分销。

实验四-图的应用――深度优先/广度优先搜索遍历

数据结构实验报告 实验四图的应用 一、实验题目: 图的应用——xx优先/xx优先搜索遍历 二、实验内容: 很多涉及图上操作的算法都是以图的遍历操作为基础的。试编写一个算法,实现图的深度优先和广度优先搜索遍历操作。 要求: 以邻接矩阵或邻接表为存储结构,以用户指定的顶点为起始点,实现连通无向图的深度优先及广度优先搜索遍历,并输出遍历的结点序列。(注: 学号为奇数的同学使用邻接矩阵存储结构实现,学号为偶数的同学使用邻接矩阵实现) 提示: 首先,根据用户输入的顶点总数和边数,构造无向图,然后以用户输入的顶点为起始点,进行深度优先、广度优先搜索遍历,并输出遍历的结果。 三、程序源代码: #include #include #define MAX_VERTEX_NUM 20 #define OVERFLOW -1 int visited[80]; typedef struct ArcNode{

int adjvex;//该弧所指向的顶点的位置 struct ArcNode *nextarc;//指向下一条弧的指针 }ArcNode; typedef struct VNode{ int data;//顶点信息 ArcNode *firstarc;//指向第一条依附该顶点的弧的指针}VNode,AdjList[MAX_VERTEX_NUM]; typedef struct{ AdjList vertices; }ALGraph; typedef struct QNode{ int data; struct QNode *next; }QNode,*QuePtr; typedef struct{ QuePtr front;//队头指针 QuePtr rear;//队尾指针 }LinkQue; void InitQue(LinkQue &q){} void EnQue(LinkQue &q,int e){} int DeQue(LinkQue &q){int e;

图的深度遍历与广度遍历

图的深度遍历和广度遍历程序源代码如下: #include"stdio.h" #include"stdlib.h" #define MAXQSIZE 100 #define MVNum 100 int visited[100]; typedef struct { char *base; int front; int rear; }SqQueue; int InitQueue(SqQueue &Q) //初始化队列 { Q.base=new char[MAXQSIZE]; if(!Q.base) exit(-1); //存储失败 Q.front=Q.rear=0; //队列为空 return 1; } int QueueEmpty(SqQueue &Q) //判断队非空 { if(Q.front==Q.rear) return 0; return 1; } int EnQueue(SqQueue &Q,char e) //入队 { if((Q.rear+1)%MAXQSIZE==Q.front) //队满 return 0; Q.base[Q.rear]=e; //新元素插入队尾 Q.rear=(Q.rear+1)%MAXQSIZE; //队尾指针加1 return 1; } int DeQueue(SqQueue &Q,char &e) //出队

{ if(Q.front==Q.rear) return 0; //队空 e=Q.base[Q.front]; Q.front=(Q.front+1)%MAXQSIZE; return 1; } int GetHead(SqQueue Q) //取队头元素{ if(Q.front!=Q.rear) return Q.base[Q.front]; } typedef struct //定义图 { char vexs[MVNum]; int arcs[MVNum][MVNum]; int vexnum,arcnum; }AMGraph; int LocateVex(AMGraph G,char u) { int i; for(i=0;i

深度分销案例

深度分销——烟啤崛起之路 烟台啤酒朝日有限公司成立于1920年,是国人兴办的最早的民族企业之一,始建于1920年,是第二家中国人创办的啤酒厂,距今已有80年历史;三十年代,烟台啤酒成功进入大上海,并行销海外;七十年代国内首家研制生产黑啤酒,并出口国外,获得德国啤酒专家的赞誉;八十年代形成黄、黑、白啤酒系列,成为全国产品线最齐全的啤酒公司;跻身中国啤酒前十强;九十年代与世界四大啤酒集团之一的日本朝日啤酒株式会社进行合作,生产世界销量第一的纯生啤酒——朝日舒波乐啤酒;2000年,与日本朝日啤酒集团合资成立烟台啤酒朝日有限公司,2002年,烟台啤酒在全国第一家全面实施纯生化管理,标志着中国的啤酒行业进入一个崭新的时代。 80年酿造经验,推行国际标准监控生产;通过ISO9002“产品质量”和“质量体系”方圆认证;享有“消费者信得过产品”、“中国名牌产品”之美誉,曾获得国际国内14枚金牌;全国食品行业质量效益型先进企业,跨入中国轻工200强和中国500家综合评价最优企业。 一、烟台啤酒实行深度分销的背景 进入九十年代后期,随着啤酒生产厂家的增多,啤酒行业的竞争也越来越激烈,啤酒行业的竞争开始由经销商的争夺变化到终端的争夺,许多啤酒厂家开始意识到管理终端的重要性,仅仅依靠经销商来管理市场是不现实的,而终端是啤酒销售的重要环节,是最靠近消费者的通路环节,所以管理终端,争夺有限的终端资源成为各大啤酒厂家的营销法宝。1999年6、7月份,烟台啤酒在外部咨询公司的协助下开始进行深度分销的探索,1999年9月份,烟台啤酒在威海市场正式导入深度分销管理方式。在摸索出一套较为成熟的深度分销管理机制后,2000年烟台啤酒在各市场全面展开深度分销市场管理。 二、深度分销理论让烟台啤酒行销工作者看到了希望 1、什么是深度分销:企业以销售终端为资源,对其进行科学的规划,直接提供推广服 务。并减少批发的级数,根据销售终端资源规划的情况发展相应数量的市场伙伴—分销商,对终端进行分销服务。 2、深度分销解决什么问题? 企业对通路失控,串货严重,价格下滑,品牌在通路受到损害,直接影响企业的利润。

图的深度优先搜索遍历算法分析及其应用

重庆邮电大学 数学大类专业 2008级《数学建模与数学实验》课程设计 设计题目:图的深度优先搜索遍历算法分析及其应用设计时间:2010.9.7-----2010.9. 12 班级: 学号: 指导教师:

图的深度优先搜索遍历算法分析及其应用 摘要:文章介绍了图论,图的基本概念及其图的表示方法。详细的分析了图中以邻接表为存储结构进行的图的深度优先搜索遍历的算法,并且在VC++环境中实现其算法的过程,对运行记过做了一定量的分析,最后介绍了基于该算法的一些应用。 关键词:图;深度优先搜索;遍历;算法 图论〔Graph Theory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。 图(Graph)是一种较线性表和树更复杂的数据结构,图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。因此,在研究有关图的问题时,要考虑图中每个顶点的信息,访问图中的各个顶点,而访问图中各个顶点的操作过程即使图的遍历,图的遍历算法是求解图的连通性问题,拓扑排序和求关键路径等算法的基础。 1图的三元组定义 图G是一个三元组由集合V,E和关联函数组成,记为:G=(V,E,W(G))。其中V是顶点的集合,表示V(G)={V1,V2,V3,……Vn},V(G)≠NULL。E是V中的点偶对的有穷集,表示为E(G)={e1,e2,e3……em},其中ei为或{Vj,Vt},若ei为{Vj,Vt},称ei为以V j 和Vt为端点的无向边;若ei 为,称ei为以V j为起点,Vt为终点的有向边;W(G)称为E→VxV的关联函数。 2图的存储结构 图的存储结构除了要存储图中各个顶点的本身的信息外,同时还要存储顶点与顶点之间的所有关系(边的信息),因此,图的结构比较复杂,很难以数据元素在存储区中的物理位置来表示元素之间的关系,但也正是由于其任意的特性,故物理表示方法很多。常用的图的存储结构有邻接矩阵、邻接表、十字链表和邻接多重表。邻接表是图的一种链式存储结构。对图的每个顶点建立一个单链表(n 个顶点建立n个单链表),第i个单链表中的结点包含顶点Vi的所有邻接顶点。 图1 无向图G 该图的G的邻接表表示如下:

图的深度和广度遍历 - 实验报告

实验报告 一、实验目的和内容 1.实验目的 掌握图的邻接矩阵的存储结构;实现图的两种遍历:深度优先遍历和广度优先遍历。 2.实验内容 1.图的初始化; 2.图的遍历:深度优先遍历和广度优先遍历。 二、实验方案 程序主要代码: ///

///邻接矩阵的节点数据 /// public struct ArcCell { public int Type; //顶点的关系类型,对无权图,用1或0表示相邻; //对带权图,则为权值类型。 public object Data; //该弧相关信息 public ArcCell(int type,object data) { Type = type; Data = data; } } /// ///图的类型 /// public enum GKind {DG,DN,UDG,UDN}; //有向图,有向网,无向图,无向网

///

///图类 /// public class Graph { public static int Max_Vertex_Num = 20; //最大顶点数 private object [] Vexs; //顶点数据数组 private ArcCell [,] Arcs; //邻接矩阵 private GKind Kind; //图的种类 private int VexNum,ArcNum; //当前顶点数和弧数 /// ///图的初始化方法 /// ///顶点数 ///弧数 ///图的类型 public Graph(int vexnum,int arcnum,GKind k) { VexNum = vexnum; ArcNum = arcnum; Kind = k; Vexs = new object[Max_Vertex_Num]; Arcs = new ArcCell[Max_Vertex_Num,Max_Vertex_Num]; } /// ///设置v1,v2之间的弧的权值,顶点的关系类型,对无权图,用1或0表示相邻; ///对带权图,则为权值类型。 /// ///顶点1 ///顶点2 ///权 ///成功返回真,否则返回假 public bool SetArcInfo(int v1,int v2,int adj,object data) { if(v1

无向图的存储及深度和广度优先遍历

《数据结构》实验报告 ◎实验题目:无序图的存储并分别实现深度和广度优先遍历 ◎实验目的:理解并掌握以邻接表的方式存储图,以及图的非递归的深度和广度优先遍历 ◎实验内容:首先将图的元素输入并以邻接表的方式存储,然后分别进行递归和非递归遍历。 一、需求分析 1、输入的形式和输入值的范围: ①输入图的顶点元素和边; ②输入数字选择要进行的操作:深度遍历,广度遍历或结束操作。 2、输出的形式: 按深度或者广度优先顺序输出各节点的编号 3、程序所能达到的功能: (1)以邻接表的方式存储图 (2)对图进行深度优先的非递归遍历 (3)对图进行广度优先的非递归遍历 4、测试数据: 输入各结点元素:a,b,c,d,e,f,g,h; 输入图中的各边:1,2 1,3 2,4 2,5 3,6 3,7 4,8 5,8 操作选项输入1进行深度优先遍历; 遍历结果为:1 3 7 6 2 5 8 4 操作选项输入2进行广度优先遍历; 遍历结果为:1 3 2 7 6 5 4 二概要设计 (1)抽象数据类型定义: #define MaxVerNum 100 //边表结点 typedef struct node{ int adjvex; struct node *next; }EdgeNode,*ENode;

顶点表结点; typedef struct vnode{ char vertex; EdgeNode *firstedge; }VertexNode; typedef VertexNode AdjList[MaxVerNum]; 定义图; typedef struct{ AdjList adjlist; int n,e; }AlGraph; AlGraph G; (2)主程序的流程: 1.根据提示输入顶点个数和边的个数; 2.输入图的各边; 3. 输入数字执行相关操作 (3)其函数之间调用关系如下: 执行结束后,重新执行判定操作和循环。 三详细设计

相关主题
文本预览
相关文档 最新文档