|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
// test_exe.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
typedef struct _DATA_LINK
{
/*链域,*llink是左链域指针,*rlink是右链域指针*/
struct _DATA_LINK *L; // 定义一个结构指针
struct _DATA_LINK *R; // 定义一个结构指
// struct _DATA_LINK *Head;
int data; /*数据域*/
int data2;
}DATA_LINK,*PDATA_LINK;
VOID Link_Test();
//LIST_ENTRY My_List; //自定义链接头
PDATA_LINK head=new DATA_LINK; //定义一个指针结构结构 申请一块内存
PDATA_LINK pData; // 定义一个指针结构结构变量
int main(int argc, char* argv[])
{
Link_Test();
return 0;
}
VOID Link_Test() // 链接 测试
{
//初始化链表
head->L = head->R = head; // 让头的 L R 指向自己
head->data=0; //数据初始化
head->data2=0; //数据初始化
printf("head=%x\n",head);//打印出 头的地址
PDATA_LINK Tlink;// 定义一个结构指针类型结构变量-
//在链表中插入5个元素
printf(("开始构建链表 \n"));
for (int i=1 ; i<=5 ; i++)//循环5次
{
pData =new DATA_LINK; //申请了一块内存
pData->data = i;
pData->data2= i+1;
//
Tlink=head->R;//保存后续结点 指向了头的起始地址
Tlink->L=pData; // 头 左 指向 结构pData在内存中的起始地址
head->R=pData; //头 右 指向 结构pData在内存中的起始地址
//
pData->R=Tlink;
pData->L=head;
// printf("Node%d=%x,R=%x,L=%x,%d,%d\n",
// pData->data-7,pData,pData->R,pData->L,pData->data,pData->data2);
}
//从链表中取出,并显示
printf("head=%x\n",head);
PDATA_LINK pnode=head; // 新声明结构变量指向 head 结构变量
do //判断 R遍历完成否
{
//显示链表内存结构
printf("结点%d=%x, \t L=%x,\t R=%x,\t %d,\t %d\n",
pnode->data, pnode, pnode->L, pnode->R, pnode->data, pnode->data2);
// address L R
pnode=pnode->L; //改变判断条件
} while (pnode != head);//while (!(pnode==head));
} |
|