DoublyLinkedList(양방향 체인 테이블)
코드:
#define SIZE 10
DouLL * head, *n, *p;
head =(DouLL * )malloc(sizeof(DouLL));
p = head; /* p */
p->Item = 1;
p->prev = p->next = NULL;
for (int i = 1; i < SIZE; i++)
{
n =(DouLL * )malloc(sizeof(DouLL));
n->Item = i + 1;
n->prev = p; /* */
p->next = n;
p = p->next;
}
n->next = NULL; /* : n -> next = head; */
head->prev = NULL; /* head -> prev = n; */
code:
//
#include
#include
#include
#define bool int
#define true 1
#define false 0;
typedef struct douLinkList
{
struct douLinkList * next; //
struct douLinkList * prev; //
int Item;
}DouLL;
/* */
bool InsertLL();
/* */
bool deleteLL();
bool InsertLL(DouLL * h, int X, int i)
{
DouLL * p;
int j;
j = 1;
while(j < i - 1 && h)
{
h = h -> next;
++ j;
}
p = malloc(sizeof(DouLL));
p -> Item = X;
p -> prev = h;
p -> next = h -> next;
h -> next -> prev = p;
h -> next = p;
return true;
}
bool deleteLL(DouLL * h, int X)
{
DouLL * temp;
if(!h)
{
fprintf(stderr, " !
");
return false;
}
while(X != h -> Item && h)
{
h = h -> next;
}
temp = h;
h -> prev -> next = h -> next;
h -> next -> prev = h -> prev;
free(temp);
return true;
}
int main()
{
char c;
int i, SIZE, X;
DouLL * head, * n, * p;
puts(" :");
scanf("%d", &SIZE);
head = malloc(sizeof(DouLL));
p = head;
p -> Item = rand() % 100 + 50;
p -> prev = p -> next = NULL;
for(i = 1; i < SIZE; i++)
{
n = malloc(sizeof(DouLL));
n -> Item = rand() % 1000 + 50;
n -> prev = p;
p -> next = n;
p = p -> next;
}
n -> next = NULL;
head -> prev = NULL;
puts("1) 2) ");
puts("3) 4) ");
while(1)
{
c = getch();
if(c == '1')
{
puts("Order:");
p = head;
while(p)
{
printf("%d ", p -> Item);
p = p -> next;
}
printf("NULL
");
puts("ReveOrder:");
p = n;
while(p)
{
printf("%d ", p -> Item);
p = p -> prev;
}
printf("NULL
");
}
if(c == '2')
{
printf("
:");
scanf("%d", &X);
p = head;
deleteLL(p, X);
}
if(c == '3')
{
printf("
( ):");
scanf("%d %d", &X, &i);
p = head;
InsertLL(p, X, i);
}
if(c == '4')
break;
}
return 0;
}
다음으로 전송:https://www.cnblogs.com/darkchii/p/7433784.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.