⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listnode.cpp

📁 简单的链表数据结构算法。简单的链表数据结构算法程序
💻 CPP
字号:
// ListNode.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <malloc.h>
#include "ListNode.h"

#define LEN  sizeof(ListNode)

BOOL IsFiveItemsAdjac(int a[ARRAY_SIZE]);
BOOL IsItemExist(int a[ARRAY_SIZE] );

int main(int argc, char* argv[])
{
	static ListNode *p1,*p2;
	int Array[ARRAY_SIZE];
	DWORD dwIndex = 0;
    int i;
	
	while ( dwIndex < 100)  {
		for (i=0; i<10; i++) {
			Array[i] = rand() % 2;
		}

		if(!dwIndex) {
			if( !IsFiveItemsAdjac(Array) )  { 
				header = (ListNode *)malloc( LEN );
				memcpy( header->array,Array,ARRAY_SIZE*sizeof(int) );
				header->dwIndex = dwIndex;
	//			memcpy( (DWORD)(header->dwIndex),dwIndex,sizeof(int) );
				dwIndex++;
				p1 = header;
				p2 = NULL;

				header->next = NULL;
			}
		}
		else {
			if( !IsItemExist(Array) && !IsFiveItemsAdjac(Array) )  {
				//Add the item to the list!
				p2 = (ListNode *)malloc( LEN );

				memcpy( p2->array,Array,ARRAY_SIZE*sizeof(int) );
				p2->dwIndex = dwIndex;
//				memcpy( (DWORD)(p2->dwIndex),dwIndex,sizeof(int) );
				p2->next = NULL;
				p1->next = p2;
				p1 = p2;

				dwIndex++;
			}
		}

	}

	 ListNode *temp ;
	 temp = header;

	 while (temp != NULL)  {
		for (i=0 ;i<10; i++)
			printf("%d,",temp->array[i] );
		printf("\n");

        temp = temp->next;
	 }
		

	printf("End!\n");
	return 0;
}

BOOL IsItemExist(int a[ARRAY_SIZE] )  {
	ListNode *temp;
	BOOL b_Exist = FALSE;

	temp = header;

	while ( temp != NULL )  {
        if( !memcmp(temp->array,a,LEN*sizeof(int) ) ) {
			b_Exist = TRUE;
			break;
		}
		temp = temp->next;
	}

	return b_Exist;
}

BOOL IsFiveItemsAdjac(int a[ARRAY_SIZE])
{
	int ZeroArray[5] = {0,0,0,0,0};
	int OneArray[5] = {1,1,1,1,1};

	int Array60[6] = {0,0,0,0,0,0};
	int Arry61[6] = {1,1,1,1,1,1};
//	int 6OneArray[6];
//	 int ZeroArray[5]; //= {0,0,0,0,0};
//	 int OneArray[5]; //= {1,1,1,1,1};
  //   int 6ZeroArray[6]; //= {0,0,0,0,0,0};
	// int 6OneArray[6]; //= {1,1,1,1,1,1};

    if( (!memcmp(a,ZeroArray,5*sizeof(int)) &&
		 memcmp(a,Array60,6*sizeof(int)) ) ||
		 ( !memcmp(a,OneArray,5*sizeof(int)) &&
			memcmp(a,Arry61,6*sizeof(int))  )  )
	
		return TRUE;
	else
		return FALSE;

	return FALSE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -