#define MAX_ITEM 10 typedef struct node *link; struct node{ int data; link next; }; link Create(); void Destory(link head); void Print(link head); link Revert(link head); Node Create() { link x = NULL
主要参考:《大话设计模式》 开放封闭: 开放:面对新的需求应该能提供扩展,即对扩展是开放的。 封闭:面对变化不要总去修改原有的类,即对更改是封闭的。 方法:创建抽象类加以实现。新需求到来只需添加为抽象的子类。 注意:拒绝不成熟的抽象。对频繁变化的部分做出抽象。 依赖倒置: 概念:依赖于抽象进行编程,不依赖与细节(实现)进行编程。(高层模块不依赖与低成模块,都依赖于抽象) 例子:对于某个高层方法连接
比如说一句话,“I love you!”变成“you! love I”, char *Reverse(char *s)
{
int n=strlen(s);
char temp[1000];//定义缓冲区的的大小
int q=n-1;
temp[n]='\0'; //最后一个为‘\0’
char *p;
p=s;
int i=0,t=0;
bool flag=t
#include"iostream"
using namespace std;
struct node
{
int data;
struct node *next;
};
typedef struct node Node;
node * reverse( node * head)
{
node * p,*q;
p=head->next;
单向列表倒置: 算法示例: head end tmp 1---->2---->3---->4---->5 end head tmp 2---->1 3---->4---->5 head end tmp 2---->1 3---->4---->5 end head tmp 3---->2---->1 4---->5
一道面试题考究:实现链表的倒置。 链表倒置有很多种方法,但究其空间角度和时间角度来讲,我觉得下面一种方法是最高效的,仅此分享: int Reverse_Linklist(LinkNode *L) { /**第一步:将头节点变成尾节点,即,断头**/ LinkNode *p,*q,*current; p = head->next; q = p->next; p->next = NULL; /**第二
(单一职责、开放封闭、里氏代换、接口隔离、依赖倒置)
优先级倒置,又称优先级反转、优先级逆转、优先级翻转,是一种不希望发生的任务调度状态。在该种状态下,一个高优先级任务间接被一个低优先级任务所抢先(preemtped),使得两个任务的相对优先级被倒置。 这往往出现在一个高优先级任务等待访问一个被低优先级任务正在使用的临界资源,从而阻塞了高优先级任务;同时,该低优先级任务被一个次高优先级的任务所抢先,从而无法及时地释放该临界资源。这种情况下,该次高优先
/* * welcome to EMC company. Output:comany EMC to welcome. */ #include<stdio.h> #include<stdlib.h> #include<string.h> int main(){ char str[] = "welcome to EMC company."; char temp; int beg
数字: #include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int>a;
for(vector<int>::size_type i=0;i<=9;i++)
a.push_back(i);
for(vector<in
今天在工作中遇到了这个问题: 一个无符号数 unsigned char m = 0x55; 要把它转成倒置的数字 0xAA.想了好久,应该有什么算法能轻易实现,不过我最终也没想到一步就完成的算法。可惜了。 我采用了下面的做法: typedef struct _bit
{
unsigned b1 : 1;
unsigned b2 : 1;
unsigned b3 : 1;
unsigned
将字符串里词顺序倒置,如"Times New Roman"变为"Roman New Times"。以空格为分隔符。 还比如把"Welcome to India" 变成"India to Welcome" /*
思路:
比如把hello world反转,做法是先把它整体反转,然后在一个单词一个单词的反转
变成dlorw olleh
然后world hello
*/
#include
//面试碰到的一道题,"she is a girl"字符串倒置成"girl a is she",给我一张纸就让我写程序,然后就成功的被pass掉了。程序真的不是在纸上写出来的。 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char str[] = "she is a girl";
char *t
场景: 实现依赖倒置,使用Managed Extensibility Framework(MEF)是扩展性管理框架 准备: 定义好的接口,接口的实现类,引入命名空间,System.ComponentModel.Composition [在控制台中的实现] ---------------------------------------------------------
namespace Co
#include <stdlib.h>
#include <stdio.h>
struct Node
{
int iValue;
struct Node* pNext;
};
typedef struct Node Node;
Node* RevList( Node* pHeader )
{
if( !pHeader )
return NULL;
Node* pRes = p
/**将一句话的单词进行倒置,标点符号不倒换。
*比如:“I am a boy.”,输出“boy. a am I”。
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SIZE 100
void func(char* input)
{
int i;
char temp;
int begin,end;
int
将一句话里的单词进行倒置,标点符号不倒换。比如一句话“i come from tianjin."倒换后变成"tianjin. from come i"。 #include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
cout<<"please input your data"<<
int main()
{
char str[]="i come from tian jin.";
char temp;
int j=strlen(str)-1,i=0;
printf("string= %s",str);
//先将整个句子逆序
while(j>i)
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
j--;
i+
例如: 输入:i came from china. 输出:china. from came i while (j>i)
{
temp=str[j];
str[j]=str[i];
str[i]=temp;
j--;
i++;
}
cout<<str<<endl;//字符串逆转了
i=0;
while(str[i]!='\0')
{
if(str[i]!='