欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

今日刷題之虛表在編譯器里怎么實現(xiàn)和如何查看鏈表是否有環(huán)-創(chuàng)新互聯(lián)

目錄

創(chuàng)新互聯(lián)建站是專業(yè)的將樂網(wǎng)站建設(shè)公司,將樂接單;提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行將樂網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

1.C/C++編譯器中虛表是如何完成的?

1)一個虛函數(shù)的類的大小 4

2)三個虛函數(shù)的類的大小4

2.給兩個變量,如何找出一個帶環(huán)單鏈表中是什么地方出現(xiàn)環(huán)的?

1)方法1:一一對比尾巴的地址是否是鏈表中的某一地址

2)方法二:快慢指針法,測試方法如上


1.C/C++編譯器中虛表是如何完成的?

如果一個類包含了虛函數(shù),不管有多少個虛函數(shù),都只增加了一個虛指針(指向虛表)的大小4,有了一個VPtr,vptr指向一個虛表(vftable),虛表里面存儲本類中虛函數(shù)的入口地址。

1)一個虛函數(shù)的類的大小 4

2)三個虛函數(shù)的類的大小4

綜上所述,類的大小與虛函數(shù)的個數(shù)無關(guān),只要存在一個就棧四個字節(jié)空間。

2.給兩個變量,如何找出一個帶環(huán)單鏈表中是什么地方出現(xiàn)環(huán)的? 1)方法1:一一對比尾巴的地址是否是鏈表中的某一地址
typedef struct CNode
{
	int data;//數(shù)據(jù)域
	struct CNode* next;//后繼指針
}CNode, * CList;

//初始化
void InitList(CList plist)
{
	assert(plist != NULL);
	if (plist == NULL)
	{
		return;
	}
	//數(shù)據(jù)域不使用
	//只有頭節(jié)點時 自己成一個循環(huán)鏈表
	plist->next = plist;
}

//尾插
bool  Insert_tail(CList plist, int val)
{
	assert(plist != NULL);
	if (plist == NULL)
	{
		return false;
	}
	//1.申請一個節(jié)點
	CNode* p = (CNode*)malloc(sizeof(CNode));
	assert(p != NULL);
	//2.填充數(shù)據(jù)
	p->data = val;
	//3,找尾巴
	CNode* q;
	for (q = plist; plist->next != plist; q = q->next)
	{
		;
	}
	//4.前后連接
	p->next = q->next;
	q->next = p;
	return true;
}

//插入數(shù)據(jù),在plist鏈表的pos位置插入val;
bool Insert(CList plist, int pos, int val)
{
	assert(plist != NULL);
	if (plist == NULL)
	{
		return false;
	}
	if (pos< 0 || pos >= GetLength(plist))
	{
		return false;
	}
	//1.申請節(jié)點  插入值
	CNode* p = (CNode*)malloc(sizeof(CNode));
	assert(p != NULL);
	//2.填充數(shù)據(jù)
	p->data = val;
	int i = 0;
	CNode* q;
	for (q = plist, i = 0; i< pos; i++, q = q->next)
	{
		;
	}
	p->next = q->next;
	q->next = p;
	return true;
}
bool Circle(CList plist)
{
	assert(plist != NULL);
	if (plist == NULL)
	{
		return false;
	}
	//1.找到尾巴
	CNode* p;
	for (p = plist; p->next != plist; p = p->next)
	{
		;
	}
	//2.一一對比尾巴的地址是否是鏈表中的某一地址
	for (CNode* q = plist; q->next != plist; q = q->next)
	{
		if (p== q->next)
		{
			return  true;
		}
	}
	return false;
}

//main.c
CNode head;
	InitList(&head);
	for (int i = 0; i< 20; i++)
	{
		Insert_head(&head, i);
		//Insert_tail(&head, i);

	}
	Show(&head);
Insert(&head, 4, 300);
	Show(&head);

	if (Circle(&head))
	{
		printf("此鏈表有環(huán)\n");
	}
	else
        printf("此鏈表無環(huán)\n");
	
	return 0;
}

結(jié)果:

2)方法二:快慢指針法,測試方法如上
//判斷鏈表是否有環(huán)
bool Circle(List plist)
{
	assert(plist != NULL);
	if (plist == NULL||plist->next==NULL)
	{
		return false;
	}
	Node* p = plist->next;//慢指針
	Node* q = plist->next->next;//快指針

	while (q != NULL && q->next != NULL)
	{
		if (p == q)
		{
			break;
		}
		p = p->next;//慢指針一次走一步
		q = q->next->next;//快指針一次兩步
	}
		if (q == NULL || q->next == NULL)
		{
			return false;
		}
		else
		{
            return true;
		}	
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當前名稱:今日刷題之虛表在編譯器里怎么實現(xiàn)和如何查看鏈表是否有環(huán)-創(chuàng)新互聯(lián)
新聞來源:http://chinadenli.net/article36/hhspg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名自適應(yīng)網(wǎng)站移動網(wǎng)站建設(shè)外貿(mào)建站搜索引擎優(yōu)化網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)