链表知识点
1.为什么不能将cur指向当前元素(为什么head初始化时是个空指针)
如果这样做,插入只能在cur之后,当前节点的前驱结点的next指针将无法更新,不能在cur之前,很难实现在链表第一个元素之前插入的问题,
2.可利用空间表
重载new与delete操作,使得内存的分配更加方便。删除的节点放在可利用空间表的首端,新增的节点去查可利用空间表。
3.链表的倒置
该方法,每次之处理当前节点的倒置
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string.h>
using namespace std;
int main()
{
char str[20]={"We Are Happy"};
int length=strlen(str);
int flag[length]={0};
int count=0;
for(int i=0;i<length;i++)
{
if(str[i]==' '){
flag[i]=1;
count++;
}
}
char fake[length+2*count];
int fakeindex=0;
int index=0;
int iter=0;
while(fakeindex<length+count*2)
{
if(flag[index]==1)
{
fake[fakeindex]='%';
fake[fakeindex+1]='2';
fake[fakeindex+2]='0';
fakeindex=fakeindex+3;
index++;
}
if(flag[index]==0)
{
fake[fakeindex]=str[index];
fakeindex++;
index++;
}
}
cout<<fake;
//strcpy(str,fake);
//cout<<str;
}