您的位置:首页 > 理论基础 > 数据结构算法

数据结构学习笔记:基本知识(二)

2014-07-31 21:24 316 查看
·链表结点的定义

数据域,用来存放数据;

指针域,用来存放下一结点的位置。

typedef  struct  Node
{
         int  data;     //默认为int型,或者写成 ElementType   element
         struct  Node *next;
} Node;

·二叉树结点的定义

typedef struct  BTNode
{
         int  data;     //默认为int型,或者写成 ElementType   element
         struct  BTNode *lchild;
         struct  BTNode *rchild;
} BTNode;

二叉树结点***

(1)	BTNode  BT;
(2)	BTNode  *BT;
         BT  =  ( BTNode* )malloc( sizeof( struct BTNode ) );


在(2)中,(*BT).data 与 BT->data 是等价的

·typedef 用来给现有的数据类型起一个新名字的

·传入函数参数变化问题

int  a;
void  f1 (int  x ) { ++x; }
void  f2 (int  &x ) { ++x; }
void  f3 (int  *&x ) { ++x; }   //执行完f3,指针x的值自增1
 
a = 0;
f1( a ) // a的值没有发生变化, a = 0
f2( a ) // a 的值发生变化,a = 1,相当于a取代了x的位置


·数组作为函数的参数

只要数组作为参数,都是引用型的。

void  f( int  x[],  int  n );          //一维数组
void  f( int  x[][maxSize],  int  n );  //二维数组,第二个[]中必须写上数组的长度


顺序栈定义

typedef struct  
{  
    int data[maxSize];   //存放栈中元素
    int top;    //栈顶指针
} SqStack;   //顺序栈类型定义


链栈结点定义

typedef struct LNode  
{  
    int data;  
    struct LNode *next;  //指向后继结点的指针  
}LNode;  //链栈结点定义
顺序队列定义:

typedef struct{
	int data[maxSize];
	int front;		 //队首
	int rear;		 //队尾
}SqQueue;			 //顺序队类型定义
链队定义:

typedef struct QNode{
	int data;
	struct QNode *next;
}QNode;			   //队结点类型定义

typedef struct{
	QNode *front;	 //队首指针
	QNode *rear;	  //队尾指针
}LiQueue;			//链队类型定义
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: