这是一个单链表按奇偶数分成两个链表的问题,但是L1和L2打印出来都是空的
这是前面的结构体定义,和初始化、打印链表
//单链表的储存描述
typedef int elementType;
typedef struct slNode {
elementType data;
struct slNode *next;
}node, *linkList;
//初始化链表
void initialList(node **pL)
{
(*pL) = new node;
(*pL)->next = NULL;
}
//打印函数
void print(node** L)
{
node* p;
p = (*L)->next;
while (p)
{
cout << p->data<<" ";
p = p->next;
}
cout << endl;
}
这是分奇偶的函数,但是L1和L2无法打印,出来的是空的。
//将单链表L中的奇数项和偶数项结点分解开(元素值为奇数、偶数),分别放入新的单链表中,然后原表和新表元素同时输出到屏幕上,以便对照求解结果
void listSeparate(node** L)
{
node* p;
node* L1, * L2, * M, * N, * u, * t;
p = (*L)->next;
L1 = (node*)malloc(sizeof(node));
L2 = (node*)malloc(sizeof(node));
M = L1;
N = L2;
initialList(&L1);
initialList(&L2);
while (p != NULL)
{
if (p->data % 2 == 0)
{
u = (node*)malloc(sizeof(node));
u->data = p->data;
u->next = M->next;
M->next = u;
M = u;
}
else
{
t = (node*)malloc(sizeof(node));
t->data = p->data;
t->next = L2->next;
L2->next = t;
L2 = t;
}
p = p->next;
}
print(L);
cout << "偶数项L1为:" << endl;
print(&L1);
cout<<"奇数项L2为:"<
数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633
public void intersection(LinkList<T> L,LinkList<T> L1) // 求交集
{
Node<T> p = L.head.next;
Node<T> p1 = L1.head.next;
while(p!=null)
{
while(p1!=null)
{
if(p.data.equals(p1.data))
{
System.out.print(p1.data+" ");
}
p1 = p1.next;
}
p1 = L1.head.next;
p = p.next;
}
}