|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
双向链表
1.双向链表比起单向链表多了一个前驱指针,通过前驱指针,我们不再需要从头到尾进行遍历,一个双向链表可以自由地前后移动指针。
2.双向循环链表可以更容易地移动指针,不再是单方向的移动。
3.双向链表可以前后移动指针的特性,在进行建模和编程更能适应一些情况下对数据的维护和处理
附上自己对视频中问题的代码:
#include<cstdio>
#include<cstdlib>
#include<iostream>
using namespace std;
struct node
{
char data;
struct node *prior,*next;
};
void Create(struct node *&h)
{
struct node *p, *q;
h = new struct node;
p = h;
for (int i = 0; i < 26; i++)
{
q = new struct node;
q->data = 'A' + i;
p->next = q;
q->prior = p;
p = q;
}
p->next = h->next;
h->next->prior = p;
}
void Encrypt(struct node *&h, int n)
{
if (n > 0)
{
do
{
h = h->next;
} while (n--);
}
else if (n < 0)
{
do
{
h = h->prior;
} while (n++);
}
}
void Output(struct node *h)
{
struct node *cp;
cp = h;
for (int i = 0; i < 26; i++)
{
cout << cp->data << " ";
cp = cp->next;
}
cout << endl;
}
int main()
{
struct node *h=NULL;
cout << "输入一个整数n:";
int n;
cin >> n;
Create(h);
Encrypt(h, n);
Output(h);
system("PAUSE");
} |
评分
-
查看全部评分
|