为什么链表的next指针也要用节点类型 不是存的是地址吗
2017-12-24 14:52
381 查看
typedef struct LNode
{
elemtype data;
struct LNode *next;
}LNode,*Linklist;
void creatlist( Linklist &l,int n)
{
Linklist p;
l=(Linklist)malloc(sizeof(LNode));
l->next=NULL;
cout<<"请输入"<<n<<"个结点的数据(逆序建立):";
for(int i=1;i<=n;i++)
{
p=(Linklist)malloc(sizeof(LNode));
cin>>p->data;
p->next=l->next;
l->next=p;
}
}//creatlist
如程序 ,这里为啥链表的next 和p指针也要用节点类型 不是存的是地址吗,那不是给个int型号的就好了 看下面
看到二叉树的建立与遍历
typedef struct BinaryTree
{
ElemType data;
struct BinaryTree *lchild;
struct BinaryTree *rchild;
}*BiTree,BiTNode,*SElemType;
//
typedef struct{
SElemType base;
SElemType top;
int stacksize;
}SqStack;
这里为什么要有两个struct 因为要遍历所以需要建立树节点和栈结合一起用
Status InitStack(SqStack &S)
{
S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!S.base) return ERROR;
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return OK;
}//你看如果base是int型号的 到时候S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); 转的时候前面的强制转化不对不上号了
{
elemtype data;
struct LNode *next;
}LNode,*Linklist;
void creatlist( Linklist &l,int n)
{
Linklist p;
l=(Linklist)malloc(sizeof(LNode));
l->next=NULL;
cout<<"请输入"<<n<<"个结点的数据(逆序建立):";
for(int i=1;i<=n;i++)
{
p=(Linklist)malloc(sizeof(LNode));
cin>>p->data;
p->next=l->next;
l->next=p;
}
}//creatlist
如程序 ,这里为啥链表的next 和p指针也要用节点类型 不是存的是地址吗,那不是给个int型号的就好了 看下面
看到二叉树的建立与遍历
typedef struct BinaryTree
{
ElemType data;
struct BinaryTree *lchild;
struct BinaryTree *rchild;
}*BiTree,BiTNode,*SElemType;
//
typedef struct{
SElemType base;
SElemType top;
int stacksize;
}SqStack;
这里为什么要有两个struct 因为要遍历所以需要建立树节点和栈结合一起用
Status InitStack(SqStack &S)
{
S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!S.base) return ERROR;
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return OK;
}//你看如果base是int型号的 到时候S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); 转的时候前面的强制转化不对不上号了
相关文章推荐
- 链表排序交换节点为什么还得单独交换next指针?
- C++链表插入,为什么头节点必须是二位指针
- 单链表中为什么要有next指针?
- (转)问题:假设一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(既不是第一个,也不是最后一个节点),请将该节点从单链表中删除。
- (转)问题:假设一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(既不是第一个,也不是最后一个节点),请将该节点从单链表中删除。
- 单链表中为什么要有next指针?
- 只知道某个单向链表的中的某个指针,且该指针不是尾指针,如何删除该节点。
- 为什么用快慢指针检测链表是否有环的时候,快指针的步长选择的是2,而不是3,4,5?
- 为什么这段代码打印出来的不是数字,而是地址,链表插入的?
- 一个单向链表,只知道某个节点的指针p,但是p不是尾节点,请编程删除节点p.
- 一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个rand指针指向这个链表中的一个随机节点或NULL,现在要求复制一个单链表来实现这个链表,返回复制后的新链表。
- 有一个单项的链表,在没有头结点的情况下,只知道有一个指向结点B的指针p,假设这个结点B不是尾结点,删除该节点B。
- 采用选择排序法对链表进行排序,注意交换操作中不是对链表里某一节点里的某一元素进行交换,而是对两节点指针的交换
- 若用链表存储一棵二叉树时,每个节点除数据域外,还有指向左孩子和右孩子的两个指针,在这种存储结构中,n歌节点的二叉树共有2N个指针域,其中有N-1个指针域存放了地址,有N+1个指针是空指针。
- 有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?
- C/C++ 指向字符的指针为什么可以用字符串来初始化,而不是字符地址。
- 为什么链表P->next指向下一个节点
- c语言中const 类型变量地址赋值给指针。
- 为什么document找到的不是html节点_优就业
- 为什么 ArrayList.toArray(T[]) 方法的参数类型是 T 而不是 E ?