本想做个可以任意输入数字链表逆序,不过写到现在还没搞得定(汗||||)
不是我写的,只是把某人的程序修改,不过改着改着改成这样子,达不到我想写的(狂汗)
帮帮忙,各位高人
#include<iostream.h>
struct {Node;
int Data;}
class LinkList
{
private:
Node*p;
Node*temp;
Node*head;
Node*tail;
public:
List(int i=10);
~List(void);
void Initlist(LinkList L);
void setLinkList(LinkList L);
void printList(LinkList L);
void NZLinkList(LinkList L);//逆置
void menu();
void Operate();
int main()
{
Operate()
return 0;
}
LinkList::LinkList(int i=10)
{
head=tail=NULL;
}
void LinkList::InitLinkList()
{
LinkList temp,head,tail;
if(L->next == NULL)
{
L->data = 0;
}
else
{
head= L;
tail = L->next;
while(tail != NULL)
{
temp = tail;
tail = temp->next;
free(temp);
}
L->data = 0;
L->next = NULL;
}
}
LinkList::setLinkList()
{
int a;
cout << "请输入要插入的数据(当遇到0时,返回):" << endl;
cin >> a;
L->data = a;
while(a != 0)
{
L->next = (LinkList)malloc(sizeof(LNode));
L = L->next;
cin >> b;
L->data = b;
}
L->next = NULL;
}
LinkList::printList()
void PrintList(LinkList L)
{
int n;
while(L != NULL)
{
if(n%10 == 0)
{
printf("\n");
}
printf("%7d",L->data);
L = L->next;
n++;
}
printf("\n");
}
LinkList::NZLinkList()
{
if(L->next == NULL)return;
LinkList back,tail;
tail = L->next;
back = L;
L->next = NULL;
while(tail->next != NULL)
{
L = tail;
tail = L->next;
L->next = back;
back = L;
}
tail->next = back;
L = tail;
// return tail;
}
LinkList::menu()
{
cout << "1.创建链表." << endl;
cout << "2.链表设置." << endl;
cout << "3.链表逆置" << endl;
}
LinkList::Operate()
{
int i ;
LinkList L[1],odd;
menu();
cin >> i;
while(i ==1)
{
L[1] = LinkList();
cout << "创建成功!请继续操作!" <<endl;
}
{
while(i==2)
{
PrintList(L[1]);
}
while(i==3)
{
NZLink(L[1]);
PrintList(L[1]);
}
[此贴子已经被作者于2006-10-29 18:32:40编辑过]