数据结构-栈2-链式存储
生活随笔
收集整理的這篇文章主要介紹了
数据结构-栈2-链式存储
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
LinkList.h
#include<stdlib.h> #include<stdio.h> #include<string.h> #define MAX_SIZE 1024 #define TRUE 1 #define FALSE 0//鏈表結(jié)點(diǎn)--存儲(chǔ)下一個(gè)結(jié)點(diǎn)指針 typedef struct LINKNODE {struct LINKNODE *next; }LinkNode;//鏈表--保存頭結(jié)點(diǎn),和鏈表長(zhǎng)度 typedef struct LINKLIST {struct LINKNODE head;int size; }LinkList;//初始化 LinkList* Init_linkList();//壓入元素 void Push_LinkList(LinkList* stack, LinkNode* data);//取出棧頂元素 LinkList* Top_LinkList(LinkList* stack);//彈出棧頂元素 void Pop_LinkList(LinkList* stack);//判斷是否為空 int IsEmpty_LinkList(LinkList* stack);//返回棧元素個(gè)數(shù) int Size_LinkList(LinkList* stack);//清空棧元素 void Clear_LinkList(LinkList* stack);//銷(xiāo)毀棧元素 void FreeSpace_LinkList(LinkList* stack);LinkList.c:
#include"LinkList.h" //初始化 LinkList* Init_linkList() {LinkList* stack = (LinkList*)malloc(sizeof(LinkList));stack->size = 0;stack->head.next = NULL;return stack; }//壓入元素 void Push_LinkList(LinkList* stack, LinkNode* data) {if (stack == NULL){return;}if (data == NULL){return;}data->next = stack->head.next;//stack->head.next = data->next; //問(wèn)題2:沒(méi)有繞對(duì)。。stack->head.next = data;stack->size++; }//取出棧頂元素 LinkList* Top_LinkList(LinkList* stack) {if (stack == NULL){return NULL;}return stack->head.next; }//彈出棧頂元素 void Pop_LinkList(LinkList* stack) {if (stack == NULL){return;}LinkNode *pNext = stack->head.next;//pNext->next = stack->head.next; 我的錯(cuò)誤做法stack->head.next = pNext->next;stack->size--;}//判斷是否為空 int IsEmpty_LinkList(LinkList* stack) {if (stack == NULL){return -1;}if (stack->size == 0)return TRUE;return FALSE; }//返回棧元素個(gè)數(shù) int Size_LinkList(LinkList* stack) {if (stack == NULL){return -1;}return stack->size; }//清空棧元素 void Clear_LinkList(LinkList* stack) {if (stack == NULL){return;}stack->head.next = NULL;stack->size = 0; }//銷(xiāo)毀棧元素 void FreeSpace_LinkList(LinkList* stack) {if (stack == NULL){return;}free(stack); }棧的鏈?zhǔn)酱鎯?chǔ).c:
#define _CRT_SECURE_NO_WARNINGS #include<stdlib.h> #include<stdio.h> #include<string.h> #include"LinkList.h"typedef struct PERSON {LinkNode node; //應(yīng)用企業(yè)鏈表思想char name[64];int age; }Person; int main() {Person p1, p2, p3, p4, p5;strcpy(p1.name, "aaa");strcpy(p2.name, "bbb");strcpy(p3.name, "ccc");strcpy(p4.name, "ddd");strcpy(p5.name, "eee");p1.age = 12;p2.age = 13;p3.age = 14;p4.age = 15;p5.age = 20;LinkList* stack = Init_linkList();Push_LinkList(stack, (LinkNode*)&p1);Push_LinkList(stack, (LinkNode*)&p2);Push_LinkList(stack, (LinkNode*)&p3);Push_LinkList(stack, (LinkNode*)&p4);Push_LinkList(stack, (LinkNode*)&p5);while (Size_LinkList(stack) > 0){Person* p = (Person*)Top_LinkList(stack);printf("Name:%s Age:%d\n", p->name, p->age);Pop_LinkList(stack);}FreeSpace_LinkList(stack);return 0; }運(yùn)行結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的数据结构-栈2-链式存储的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python文件操作小总结
- 下一篇: 对tf.nn.softmax的理解