信管117116李可欣資料結構實驗二

2021-08-19 09:05:29 字數 2854 閱讀 6115

1、(1)順序棧的入棧和出棧:

#include< iostream >

usingnamespace std;

#definestack_size 10

intstack[stack_size];

inttop = 0;

voidinit_stack()  //

初始化順序棧

voidpush_stack(int x)

}voidpop_stack()

}intmain()

cout<< "

請輸入你想出站的元素個數:";   //順序棧的出棧操作

intn1;

cin>> n1;

cout<< "

出站的元素依次為:" << endl;

for(int i = 0; i < n1; i++)

cout<< endl;

return0;

}(2)鏈棧的入棧和出棧:

#include 

#include 

typedef struct stack

stack;

//初始化

void initstack(stack *&s)

//釋放棧

void clearstack(stack *s)}//

判斷棧是否為空

int stackempty(stack *s)

int length(stack *s)

return i;}//

得到棧頂元素

int gettop(stack *s,int &e)

//入棧

void push(stack *s,int e)

//出棧

int pop(stack *s,int &e)

p=s->next;

e=p->data;

s->next=p->next;

free(p);

return 1;}//

輸出棧的元素

void outputstack(stack *s)

while(p!=null) 

printf("\n");

}int main()

clearstack(s);

system("pause");

}2、(1)順序佇列的入隊和出隊:

(2)棧佇列的入隊和出隊:

#include

usingnamespace std; 

typedefchar type; 

//鏈隊結點定義 

typedefstruct node 

node,*queuenode; 

//鍊錶結構體定義 

typedefstruct queue 

queue,*pqueue; 

//初始化佇列 

voidinitqueue(pqueue q) 

q->front->next=null; 

q->rear=(queuenode)malloc(sizeof(node)); 

if(null==q->rear) 

q->rear->next=null; 

q->size=0; 

}  //

入隊操作 

voidenterqueue(pqueue q,type data) 

newnode->data=data; 

q->size++; 

if(null==q->front->next) //

隊列為空 

else 

}  //出隊  返回原隊頭結點 

queuenodeoutqueue(pqueue q) 

queuenode temp =q->front->next; 

q->front->next=temp->next; 

q->size--; 

return temp; 

}  //

列印佇列 

voidprintqueue(pqueue q) 

cout<

}  int_tmain(int argc, _tchar* argv) 

;  queue q; 

initqueue(&q); 

for(int i=0;i<5;i++) //

入隊 

enterqueue(&q,a[i]); 

printqueue(&q); 

outqueue(&q);  //

出隊 printqueue(&q); 

cout<

隊尾元素"data<

return 0; 

}

可持久資料結構

o n log n 由於很久之前看過這個題,一直以為不是很可做,然而發現一眾大佬全都切掉了,於是好好想了想,發現不是很難。如果 k k 只需要從右到左再跑一遍即可。o n logn 長時間思考無果後去看了個標籤 切比雪夫距離轉曼哈頓距離?然後就去學習了一下,然後就會了。首先將題裡的那個東西轉成曼哈頓...

信管117135張志海資料結構一

標頭檔案如下 ifndef seqlist h 避免重複包含seqlist.h標頭檔案 define seqlist h const int maxsize 10 線性表最多包含10個元素 class seqlist 無參建構函式,建立乙個空表 seqlist int a,int n 有參建構函式 ...

可持久化資料結構

1.可持久化線段樹 可持久化陣列 最基礎的可持久化資料結構,每次修改開新的log個點即可。includeusing namespace std const int n 1e6 100 templatevoid rd t x templatevoid print t x struct segseg n...