데이터 구 조 를 연구 하고 C+링크 부분 을 잘 알 고 있 습 니 다.
13392 단어 자료.
#include "bits/stdc++.h"
using namespace std;
const int N = 10;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode;
void createList(LNode *head, int a[N])
{
LNode *p = head;
for (int i = 0; i < N; i++)
{
LNode *newnode = new LNode;
newnode->data = a[i];
p->next = newnode;
p = p->next;
}
}
void printList(LNode *head)
{
LNode *p = head->next;
while (p != NULL)
{
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
void reverseList(LNode *head)
{
LNode *p, *r;
p = head->next;
head->next = NULL;
while (p != NULL)
{
r = p->next;
p->next = head->next;
head->next = p;
p = r;
}
}
void deleteKNumber(LNode *head)
{
cout << "Which u want to delete" << endl;
int k;
cin >> k;
int count = 0;
LNode *p = head;
LNode *q = p;
while (p != NULL)
{
count++;
p = p->next;
if (count == k)
{
q->next = p->next;
delete p;
return;
}
q = q->next;
}
}
void destroy(LNode *head)
{
LNode *p = head, *r;
while (p != NULL)
{
r = p->next;
delete p;
p = r;
}
}
int main()
{
ios::sync_with_stdio(0);
int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
LNode *head = new LNode;
createList(head, a);
printList(head);
deleteKNumber(head);
printList(head);
puts("reverse:");
reverseList(head);
printList(head);
destroy(head);
printList(head);
return 0;
}
요 며칠 동안 데이터 구 조 를 복습 했다.내 가 보기에 그것 은 주로 시간의 복잡 도 를 중시 하 는 것 같다.문제 의 난이 도 는 모두 어렵 지 않다.모두 데이터 구조 자체 의 문제 이 고 실제 상황 을 가리 지 않 았 다.나 는 또 상당 수의 학생 들 이 직접 코드 를 외 웠 다 고 들 었 다.)408 데이터 구 조 를 쟁취 하면 만점 을 받 을 수 있다.