结构体指针

复习一下:struct结构

来个代码:

struct Hero{
	string name;
	int a,b,rp;
};

再来复习一下指针:

来个代码:

int *p;
*p=10;

那么,结构体+指针呢?

就得这样写:

Hero *p;
p=&ironman;
p->a=90;
p->b=90;
p->rp=90;

而且->的用法最常用,优先级最高的的数据结构

下面来讲一个“动态内存分配”

看一个代码:

#include 
using namespace std;
int main()
{
	int *p;//定义指针p指向整数类型
	p=new int;//动态分配一个新整数,内存地址赋值给p
	*p=99;
	cout<<*p;
	return 0;
}

那就有人说:“切,有事没事动态分配干嘛,静态不香吗”

过一会儿就知道了φ(゜▽゜*)♪

话不多说,开始正题

单链表

看张图

结构体指针_第1张图片

 1.单链表存储结构及实现

单链表节点代码:
 

struct Node{
	int data;
	Node *next;
};

头指针first:储存第一个结点的地址

尾标志:终端结点的指针域为空,即NULL

单链表的遍历:

s=first;
while(s!NULL){
	cout<data<<" ";
	s=s->next;
}

2.构建链表

头插:

first=NULL;
s=new Node;
s->data=2;
s->next=first;
first=s;

把刚才所有讲的全部串起来

#include 
using namespace std;
struct Node{
	int data;
	Node next;
};
int main()
{
	int n;
	Node *first,*s;
	first=NULL;
	cin>>n;
	for(int i=0;i>x;
		s=new Node;
		s->data=x;
		s->naxt=first;
		first=s;
	}
}

你可能感兴趣的:(算法,数据结构)