(尹承祐の熱血資料構造)第5章/6章
2846 ワード
円形の接続リスト
ポインタ変数headは何を指しますか.
void list plist(データ)/末尾にノードを追加
ノードをvoid list plist(データ)/ヘッダに追加
円形接続リストadt
void ListInit(List plist);
void LInsert(List plist, LData data);
void LInsertFront(List plist, Data data);
int LFirst(List plist, Data pdata);
int LNext(List plist, Data pdata);
Data LRemove(List plist);
int LCount(List * plist);
円形接続リストmain関数
1.リストを初期化し、ノードを挿入する
2.クエリーデータ
3.ノードの削除
スタックadt
void StackInit(Stack pstack);
int SIsEmpty(Stack pstack);
void SPush(Stack pstak, Data data);
Data SPop(Stack pstack);
Data SPeek(Stack *pstack);
配列ベースのスタックマスター関数
ポインタ変数headは何を指しますか.
void list plist(データ)/末尾にノードを追加
ノードをvoid list plist(データ)/ヘッダに追加
円形接続リストadt
void ListInit(List plist);
void LInsert(List plist, LData data);
void LInsertFront(List plist, Data data);
int LFirst(List plist, Data pdata);
int LNext(List plist, Data pdata);
Data LRemove(List plist);
int LCount(List * plist);
円形接続リストmain関数
#include <stdio.h>
#include "CLinkedList.h"
int main(void) {
List list;
int data, i, numNode;
ListInit(&list);
LInsert(&list, 3);
LInsert(&list, 4);
LInsert(&list, 5);
LInsertFront(&list, 2);
LInsertFront(&list, 1);
if(LFirst(&list, &data)) {
printf("%d ", data);
for(i = 0; i < LCount(&list) * 3 - 1; i++) {
if(LNext(&list, &data))
printf("%d ", data);
}
}
printf("\n");
numNode = LCount(&list);
if(numNode != 0) {
LFirst(&list, &data);
if(data%2 == 0)
LRemove(&list);
for(i = 0; i < numNode - 1; i++) {
LNext(&list, &data);
if(data%2 == 0)
LRemove(&list);
}
}
if(LFirst(&list, &data)) {
printf("%d ", data);
for(i = 0; i < LCount(&list) - 1; i++) {
if(LNext(&list, &data))
printf("%d ", data);
}
}
printf("\n");
return 0;
}
インプリメンテーション1.リストを初期化し、ノードを挿入する
2.クエリーデータ
3.ノードの削除
スタックadt
void StackInit(Stack pstack);
int SIsEmpty(Stack pstack);
void SPush(Stack pstak, Data data);
Data SPop(Stack pstack);
Data SPeek(Stack *pstack);
配列ベースのスタックマスター関数
#include <stdio.h>
#include "ArrayBaseStack.h"
int main(void) {
Stack stack;
StackInit(&stack);
SPush(&stack, 1);SPush(&stack, 2);
SPush(&stack, 3);SPush(&stack, 4);
SPush(&stack, 5);
while(!SIsEmpty(&stack)) {
printf("%d ", SPop(&stack));
}
printf("\n");
return 0;
}
接続ベースのスタックマスター関数#include <stdio.h>
#include "ListBaseStack.h"
int main(void) {
Stack stack;
StackInit(&stack);
SPush(&stack, 1);SPush(&stack, 2);
SPush(&stack, 3);SPush(&stack, 4);
SPush(&stack, 5);
while(!SIsEmpty(&stack)) {
printf("%d ", SPop(&stack));
}
printf("\n");
return 0;
}
Reference
この問題について((尹承祐の熱血資料構造)第5章/6章), 我々は、より多くの情報をここで見つけました https://velog.io/@kungfuk11/윤성우의-열혈-자료구조-5장6장テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol