Académique Documents
Professionnel Documents
Culture Documents
#include <iostream>
// GPS READING
#include <iostream>
#include <sstream>
#include <vector>
int main() {
string gps_code =
"$GPGGA,182431.000,3453.1256,N,06939.7292,W,1,06,1.5,119.1,M,-
34.0,M,,*6E";
return 0;
}
struct MessageItem
{
string subject;
string content;
MessageItem *pNext;
};
struct MessageList
{
MessageItem *pHead;
};
void initMessageList(MessageList &l);
void addMessage(MessageList &l,const string &sj,const string &ct);
void removeMessageBySubject(MessageList &l,const string &sj);
void removeAllMessages(MessageList &l);
int main()
{
MessageList myMailBox;
initMessageList(myMailBox);
addMessage(myMailBox,"Hi"," my friend!");
addMessage(myMailBox,"Test","Test my mailbox");
addMessage(myMailBox,"Lecture Notes","Programming Techniques");
removeMessageBySubject(myMailBox,"Test");
MessageItem* pItem = myMailBox.pHead;
while (pItem != 0)
{
cout << pItem->subject << ":" << pItem->content << '\n';
pItem = pItem->pNext;
}
removeAllMessages(myMailBox);
}
void initMessageList(MessageList &l)
{
l.pHead = 0;
}
void addMessage(MessageList &l,const string &sj,const string &ct)
{
MessageItem *pItem = new MessageItem;
pItem->subject = sj;
pItem->content = ct;
pItem->pNext = l.pHead;
l.pHead = pItem;
}
void removeMessageBySubject(MessageList &l,const string &sj)
{
MessageItem *pItem = l.pHead;
MessageItem *pItemBefore;
while(pItem != NULL)
{
if(pItem->subject != sj)
{
pItemBefore = pItem;
pItem = pItem->pNext;
}
else
{
pItemBefore->pNext = pItem->pNext;
break;
}
}
l.pHead = pItemBefore;
}
void removeAllMessages(MessageList &l)
{
MessageItem *pItem = l.pHead;
while(pItem != NULL)
{
MessageItem *pItemNext;
pItemNext = pItem->pNext;
delete pItem;
pItem = pItemNext;
}
l.pHead = NULL;
}
class Node {
public:
int data;
Node* next;
Node(int val) {
data = val;
next = NULL;
}
};
class LinkedList {
public:
Node* head;
LinkedList() {
head = NULL;
}
void deleteAtBeginning() {
if (head == NULL) {
cout << "List is empty\n";
}
else {
Node* temp = head;
head = head->next;
delete temp;
}
}
void deleteAtEnd() {
if (head == NULL) {
cout << "List is empty\n";
}
else if (head->next == NULL) {
delete head;
head = NULL;
}
else {
Node* temp = head;
while (temp->next->next != NULL) {
temp = temp->next;
}
delete temp->next;
temp->next = NULL;
}
}
void displayList() {
Node* temp = head;
while (temp != NULL) {
cout << temp->data << " ";
temp = temp->next;
}
cout << endl;
}
};
int main() {
LinkedList myList;
myList.insertAtBeginning(5);
myList.insertAtBeginning(4);
myList.insertAtBeginning(3);
myList.displayList();
}
// PARATHESIS MATCHING
#include <iostream>
#include <stack>
#include <string>
bool isBalanceParanthesis(std::string str)
{
// pc stands for paranthesis_container
std::stack<char> pc;
for(char c:str )
{
if(c == '('
|| c == '['
|| c == '{')
{
pc.push(c);
}
if(c == ')' || c == ']' || c == '}' )
{
if(pc.empty())
{
return false;
}
else if(pc.top() != c)
{
return false;
}
else
{
pc.pop();
}
}
}
if(pc.empty()) return true;
else return false;
}
int main()
{
// intial string
std::string str;
std::cout << "Nhap chuoi: " ;
std::getline(std::cin,str);
if(isBalanceParanthesis(str))
{
std::cout << "Correct!" ;
}
else std::cout << "Incorrect" ;
}