学习C++笔记355

简介: C++ 动态内存

利用动态内存, 我们也可以做出链表, 可以不断增长的数组:

#include

#include


usingnamespace std;


struct node

{    

   //链表的节点

   int data;//数据

   int num;//节点编号

   struct node *next;//指向下一个节点

};


int main()

{

   struct node *head/*头节点*/,*p,*q;

   head=NULL;

   p=NULL;

   q=new node;

   q->next=NULL;

   q->num=1;

   int a=-1;

   cout<<"请输入第1个数字:";

   cin>>a;

   q->data=a;

   head=q;

   while(a!=0)

   {

       p=q;

       q=new node;

       q->next=NULL;

       p->next=q;

       q->num=p->num+1;

       cout<<"请输入第"<<q->num<<"个数字:";

       cin>>a;

       q->data=a;

   }


   //前面都是输入,这以下都是输出


   q=head;

   p=NULL;

   while(q->data!=0)

   {

       printf("%d %d\n",q->num,q->data);

       q=q->next;

   }

   

   //释放内存


   q=head;

   p=q;

   while(q->next!=NULL)

   {

       p=q->next;

       delete[]q;

       q = p;  

   }

   return0;

}

->: 用指针访问结构体内的变量。

在链表中插入、删除节点也很简单, 先给next赋下一个节点地址,再加数据即可。

目录
相关文章
|
1天前
|
存储 自然语言处理 编译器
|
1天前
|
存储 程序员 编译器
|
1天前
|
Java C++ iOS开发
|
1天前
|
存储 编译器 文件存储
|
4天前
|
C++
【C++】日期类Date(详解)②
- `-=`通过复用`+=`实现,`Date operator-(int day)`则通过创建副本并调用`-=`。 - 前置`++`和后置`++`同样使用重载,类似地,前置`--`和后置`--`也复用了`+=`和`-=1`。 - 比较运算符重载如`&gt;`, `==`, `&lt;`, `&lt;=`, `!=`,通常只需实现两个,其他可通过复合逻辑得出。 - `Date`减`Date`返回天数,通过迭代较小日期直到与较大日期相等,记录步数和符号。 ``` 这是236个字符的摘要,符合240字符以内的要求,涵盖了日期类中运算符重载的主要实现。
|
7天前
|
C++
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
10 0
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
|
2天前
|
编译器 C语言 C++