佇列的應用 模擬簡訊

2021-09-01 05:17:48 字數 4063 閱讀 8139

一、實驗目的

本實驗是佇列的一種典型的應用,佇列是一種「先到先服務」的特殊的線性表,本實驗要求模擬手機簡訊功能,使用鏈式儲存結構的佇列,進行動態地增加和刪除結點資訊。

通過本實驗的學習,可以理解佇列的基本操作的實現。

二、實驗內容

設計程式要求,模擬手機的某些簡訊息功能。

功能要求:

(1)接受簡訊息,若超過儲存容量(如最多可儲存20條),則自動將最早接受的資訊刪除。

(2)顯示其中任意一條簡訊息。

(3)逐條顯示簡訊息。

(4)刪除其中的任意一條簡訊息。

(5)清除。

三、程式分析

採用結構體指標定義儲存簡訊結點:

typedef struct qnode

qnodetype; /定義佇列的結點/

定義佇列:

typedef struct

lqueue;

(1)int initlqueue(lqueue **q) 初始化簡訊佇列。

(2)int linqueue(lqueue *q,char x) 入佇列,將字串x加入到佇列尾部。

(3)char * loutqueue(lqueue *q) 出佇列,刪除隊頭元素,返回其中的字串。

(4)void get(lqueue *q,char x) 接收短數,若簡訊數量超過20條,則刪除隊頭簡訊。

(5)void deleteall(lqueue *q) 清除所有簡訊。

(6)void deleteone(lqueue *q,int n) 刪除第n條簡訊。

(7)void displayall(lqueue *q) 顯示所有簡訊。

(8)void displayone(lqueue *q,int n) 顯示第n條簡訊。

在main()函式中,採用選單方式,選單中同時顯示出已有的簡訊數量,由使用者選擇輸入命令,實現程式要求功能,命令說明:

r®:接收簡訊

l(l):顯示任意一條簡訊

a(a):顯示所有簡訊

d(d):刪除任意一條簡訊

u(u):刪除所有簡訊

q(q):退出

四、程式源**

#include

#include

#include

#define maxmessage 50

#define len 20

#define true 1

/* the storage structure of chain of the queue --by jelly*/

//information node

typedef

struct qnodeqnodetype;

//define queue

typedef

struct

queue;

//initialization

intinitqueue

(queue *

*q)//in queue

intinqueue

(queue *q,

char x)

//out queue

char

*outqueue

(queue *q)

//get information

void

get(queue *q,

char x)

else

}//delete one decided information

void

clearone

(queue *q,

int num)

else

}else

else}}

}else

printf

("error:no this message\n");

(q->number)--;

//exit(0);

}//delete all

void

clearall

(queue *q)

}//display one decided information

void

displayone

(queue *q,

int num)

else}}

//display all the informations

void

displayall

(queue *q)}//

intmain()

if(command==

'q'||command==

'q')

break;}

return0;

}

# define maxnum 70

# define false 0

# define true 1

#include

"stdio.h"

#include

"stdlib.h"

#include

"string.h"

typedef

struct qnode

qnodetype;

/*定義佇列的結點*/

typedef

struct

lqueue;

intinitlqueue

(lqueue *

*q)int

linqueue

(lqueue *q,

char x)

char

*loutqueue

(lqueue *q)

void

get(lqueue *q,

char x)

linqueue

(q,x)

;q->number++;}

void

deleteall

(lqueue *q)

void

deleteone

(lqueue *q,

int n)

s=p->front->next;

p->front->next=p->front->next->next;

free

(s);

q->number--;}

void

displayall

(lqueue *q)

printf

("\n");

}void

displayone

(lqueue *q,

int n)

s=p->front->next;

printf

("%s\n"

,s->data);}

void

main()

if(command==

'q'||command==

'q')

break;}

}

五、實驗結果

最後程式執行結果如下所示:

get information(0),please enter r

display one information(0),please enter l

display all information(0),please enter a

delete one information(0),please enter d

delete all information(0),please enter u

quit,please enter q

please input command: ri like c++↙《回車》

get information(1),please enter r

display one information(1),please enter l

display all information(1),please enter a

delete one information(1),please enter d

delete all information(1),please enter u

quit,please enter q

please input command

Android 簡訊應用 簡訊傳送2

之前,有一片關於簡訊傳送的文章,不過那篇文章所提到的方法,是不會把簡訊存放到發件箱中的。介於有些時候需要存入,那麼我把相關的 寫出來 只要把這幾句加入方法中,再加上需要的許可權,那麼簡訊發出去後,發件箱就有所發簡訊內容了。如下 contentvalues values new contentvalu...

Android 簡訊應用 簡訊(會話)刪除

用過android系統手機的朋友們相比都知道,androidos的簡訊和ios一樣,是以會話模式展現的,這種展現方式很容易讓使用者查詢以前的聊天記錄。關於用 刪除簡訊,其實刪除的也是對話,無論是最近的,還是以前的,統統都會一併刪除。下面來看那 首先需要得到得到簡訊目錄。contentresolver...

AcWing 模擬佇列 佇列 模擬

時 空限制 1s 64mb 實現乙個佇列,佇列初始為空,支援四種操作 1 push x 向隊尾插入乙個數x 2 pop 從隊頭彈出乙個數 3 empty 判斷佇列是否為空 4 query 查詢隊頭元素。現在要對佇列進行m個操作,其中的每個操作3和操作4都要輸出相應的結果。第一行包含整數m,表示操作次...