|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
//打印出牌的顺序 1 8 2 5 10 3 Q J 9 4 7 6 K
问题1:见24行
问题2:见44行
问题3:怎么完善Delete函数
#include <iostream>
using namespace std;
struct cards {
int data;
cards* next;
};
const int total = 13;
cards* CreatLinkList(void);
void PrintLinkList(cards* card, int n);
//void DeleteLinkList(cards* card);
int main()
{
cards* card = CreatLinkList();//创建一个链表
card->data = 1;//第一张牌是1
cards* head = card;
for (int step = 2; step != 14; step++) {//开始寻找每一张牌
for (int i = 1; i <= step; i++) {
card = card->next;
//cout << &card << endl;??为什么card的地址没有改变?
while (card->data != 0)
card = card->next;
}
card->data = step;//确认该位置的牌
}
card = head;
PrintLinkList(card, total);
//card = head;
//DeleteLinkList(card);
return 0;
}
cards* CreatLinkList(void)
{
int i;
cards* card = new cards;
cards* head = card;
for (i = 1; i < total; i++) {//这里明明只创建了12个内存空间,为什么最后结果显示的是13个?
cards* p = new cards;
p->data = 0;
card->next = p;
card = p;
cout << i << endl;
}
card->next = head;
card = head;
return card;
}
void PrintLinkList(cards* card, int n)
{
for (int i = 1; i <= n; i++) {
cout << card->data << " ";
card = card->next;
}
}
/*void DeleteLinkList(cards* card)
{
while (1) {
cards* p = card;
if (p) {
p = p->next;
delete card;
}
else {
break;
}
}
}*/
问题见顶上角 |
|