数据结构
单链表
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef int ElemType;
struct node
{
ElemType data;
node *next;
node(int x = 0) : data(x), next(NULL) {
}
};
typedef struct node List;
typedef struct node *Plist;
void createlist(node *&L, int n)
{
node *s, *p;
L = new (node);
p = L;
p->next = NULL;
for (int i = 0; i < n; i++)
{
int a;
scanf("%d", &a);
s = new (node);
s->data = a;
s->next = p->next;
p->next = s;
}
}
int LengthList(node *&head)
{
int cnt = 0;
Plist p;
p = head->next;
while (p)
{
cnt++;
p = p->next;
}
return cnt;
}
void printlist(node *&L)
{
node *r;
r = L->next;
while (r)
{
printf("%d ", r->data);
r = r->next;
}
cout << endl;
}
void ChangeList(node *&L)
{
node *p, *s, *chead;
chead = new node;
chead->next = NULL;
p = L->next;
while (p)
{
s = new node;
s->next = NULL;
s->data = p->data;
s->next = chead->next;
chead->next = s;
p = p->next;
}
L = chead;
}
void DeleteList(node *&L)
{
node *p, *q, *r;
p = L->next;
while (p)
{
q = p->next;
r = p;
while (q)
{
if (p->data == q->data)
{
r->next = q->next;
delete q;
}
else
{
r = r->next;
}
q = r->next;
}
p = p->next;
}
}
void ListData(node *&r, int m)
{
node *p, *q;
p = r->next;
q = r;
while (p)
{
if (p->data == m)
{
q->next = p->next;
delete p;
p = q->next;
}
else
{
p = p->next;
q = q->next;
}
}
}
void MergeList(node *&A, node *&B, node *&C)
{
node *p, *q, *r, *s;
p = A->next;
q = B->next;
r = C;
while (p && q)
{
if (p->data < q->data)
{
r->next = p;
r = p;
p = p->next;
}
else
{
r->next = q;
r = q;
q = q->next;
}
}
if (p)
r->next = p;
else
r->next = q;
}
void Chaifen(node *&head, node *&B, node *&C)
{
node *r, *p, *q;
r = head->next;
p = B;
q = C;
while (r)
{
if (r->data % 2)
{
p->next = r;
p = p->next;
r = r->next;
}
else
{
q->next = r;
q = q->next;
r = r->next;
}
}
p->next = NULL;
q->next = NULL;
}
void sort(struct node *head)
{
node *p, *q;
int t;
for (p = head->next; p != NULL; p = p->next)
{
for (q = p->next; q != NULL; q = q->next)
{
if (p->data > q->data)
{
t = p->data;
p->data = q->data;
q->data = t;
}
}
}
}
int main()
{
int n;
List *phead, *B, *C;
scanf("%d", &n);
createlist(phead, n);
cout << LengthList(phead) << endl;
printlist(phead);
DeleteList(phead);
cout << LengthList(phead) << endl;
printlist(phead);
return 0;
}
二级目录
三级目录
二级目录
三级目录
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef int ElemType;
struct node
{
ElemType data;
node *next;
node(int x = 0) : data(x), next(NULL) {
}
};
typedef struct node List;
typedef struct node *Plist;
void createlist(node *&L, int n)
{
node *s, *p;
L = new (node);
p = L;
p->next = NULL;
for (int i = 0; i < n; i++)
{
int a;
scanf("%d", &a);
s = new (node);
s->data = a;
s->next = p->next;
p->next = s;
}
}
int LengthList(node *&head)
{
int cnt = 0;
Plist p;
p = head->next;
while (p)
{
cnt++;
p = p->next;
}
return cnt;
}
void printlist(node *&L)
{
node *r;
r = L->next;
while (r)